一句話來說:原始值是不可變的,而物件引用是可變的。
js中的原始值(undefined、null、布林值、數字和字串)與物件(包括陣列和函式)有著本質的區別。原始值是不可更改的,任何方法都無法更改乙個原始值;對於字串來說,字串中所有的方法看上去返回了乙個修改後的字串,實際上返回的是乙個新的字串值:
var str="hello world";
s.touppercase();
s; //仍然不變
原始值的比較是值的比較:只有它們的值相等時它們才想等。
物件和原始值不同,首先它們是可變的;其次物件的比較並非值的比較;物件的比較皆為引用的比較:當且僅當它們引用同乙個基本物件時,它們才想等。
若想比較2個單獨的物件或陣列,必須比較它們的屬性或元素,如下所示:
function
equ_arrays
(a,b)
ECMAScript 原始值和引用值
原始值 儲存在棧 stack 中的簡單資料,直接儲存在變數訪問的位置 引用值 儲存在堆 heap 中的物件,儲存在變數處的值是乙個指標,指向儲存物件的記憶體處 為變數賦值時,ecmascript的解釋程式必須判斷該值是原始型別還是引用型別 ecmascript把字串看作引用型別 引用型別的引用值大小...
JavaScript物件轉換為原始值的學習筆記
首先指明,本文中提到的轉換,只針對js中的內建物件 本地物件 內建物件是指js標準規範定義的類,比如array,function,object,date等。與內建物件對立的是宿主物件,就是js寄生的環境 瀏覽器,瀏覽器物件有window,dom,bom,event等 1.物件轉換為布林值 所有物件轉...
ECMAScript 基礎 原始值和引用值
在 ecmascript 中,變數可以存在兩種型別的值,即原始值和引用值。原始值儲存在棧 stack 中的簡單資料段,也就是說,它們的值直接儲存在變數訪問的位置。引用值儲存在堆 heap 中的物件,也就是說,儲存在變數處的值是乙個指標 point 指向儲存物件的記憶體處。為變數賦值時,ecmascr...