ECMAScript 基礎 原始值和引用值

2022-04-03 23:30:49 字數 649 閱讀 1928

在 ecmascript 中,變數可以存在兩種型別的值,即原始值和引用值。

原始值儲存在棧(stack)中的簡單資料段,也就是說,它們的值直接儲存在變數訪問的位置。

引用值儲存在堆(heap)中的物件,也就是說,儲存在變數處的值是乙個指標(point),指向儲存物件的記憶體處。

為變數賦值時,ecmascript 的解釋程式必須判斷該值是原始型別,還是引用型別

解釋程式則需嘗試判斷該值是否為 ecmascript 的原始型別之一,即 undefined、null、boolean、number 和 string 型。由於這些原始型別佔據的空間是固定的,所以可將他們儲存在較小的記憶體區域 - 棧中。這樣儲存便於迅速查尋變數的值。

在許多語言中,字串都被看作引用型別,而非原始型別,因為字串的長度是可變的。ecmascript 打破了這一傳統。

ecmascript 有 5 種原始型別(primitive type),即 undefined、null、boolean、number 和 string

ecmascript 提供了 typeof 運算子來判斷乙個值是否在某種型別的範圍內。

可以用這種運算子判斷乙個值是否表示一種原始型別:如果它是原始型別,還可以判斷它表示哪種原始型別。

ECMAScript 原始值和引用值

原始值 儲存在棧 stack 中的簡單資料,直接儲存在變數訪問的位置 引用值 儲存在堆 heap 中的物件,儲存在變數處的值是乙個指標,指向儲存物件的記憶體處 為變數賦值時,ecmascript的解釋程式必須判斷該值是原始型別還是引用型別 ecmascript把字串看作引用型別 引用型別的引用值大小...

ECMAScript 原始型別

typeof運算子對於null值會返回 object 當宣告的變數未初始化時,該變數的預設值是underfined 值underfined不同於未定義的值。typeof運算子並不真正區分這兩種值 var otemp alert typeof otemp alert typeof otemp2 輸出都...

原始值包裝型別

為了方便操作原始值,ecmascript提供了三種特殊的引用型別 boolean number string。每種型別都有各自的行為 api 每當用到某個原始值的方法或者屬性時,後台都會建立乙個相應原始包裝型別的物件,從而暴露出操作原始值的各種方法。例項 let str1 abcdef let st...