JavaScript 包裝物件
無論生活中還是工作中,都有很多習以為常的現象或者認為理所應當的事情。
但如果真去探究其中的來龍去脈或原理,可能未必能那麼清晰,甚至讓人感覺匪夷所思。
如蘋果落地現象,普通人肯定感覺這是理所當然的事情,如果不是牛頓多思,豈能發現萬有引力。
由此可見,學習中要重視每一個細節,因為裡面可能隱藏著自己尚未掌握的知識。
JavaScript中 也有類似的現象,首先看一段簡單程式碼例項:
[JavaScript] 純文字檢視 複製程式碼執行程式碼var str = "antzone"; console.log(str.length);
程式碼執行效果截圖如下:
上面程式碼非常簡單,通過 length 屬性獲取字串包含的字元的個數。
但是如果深究下去可能會產生一些疑問,分步闡述如下:
(1).JavaScript 資料分為值型別與引用型別,引用型別也就是通常所說的物件。
(2).只有物件才有可能擁有方法或者屬性,然後通過點(.)或者其他方式使用這些屬性或者方法。
(3).但上面 str 很明是一個值型別資料,為什麼也能夠使用 length 屬性。
關於資料型別相關知識可以參閱如下兩篇文章:
(1).JavaScript 值型別和引用型別一章節。
(2).JavaScript 資料型別一章節。
上述現象分析如下:
(1)."antzone" 確實是值型別資料,但是當通過點(.)使用 length 屬性的時候。
(2).內部會自動將值型別資料臨時轉換為對應的字串物件,於是就可以使用此屬性了。
(3).這是一個臨時包裝物件。
(4).此臨時包裝物件會在呼叫完屬性後被立即銷燬。
再來看一段程式碼簡單的程式碼例項:
[JavaScript] 純文字檢視 複製程式碼執行程式碼var str = "antzone"; str.len = 5; console.log(str.len)
程式碼執行效果截圖如下:
上述程式碼列印結果為 undefined,程式碼分析如下:
(1).當為自定義屬性 len 賦值的時候,會生成一個包裝物件。
(2).此包裝物件會在賦值結束後立馬被銷燬,自然 len 屬性值也被一併銷燬。
(3).當列印 str.len 時,又會臨時生成一個包裝物件,此時 len 值是 undefined。
JavaScript 具有的包裝物件:
具有三個包裝物件,分別是 String,Number 和 Boolean。
分別對應著 字串、數值和布林,都是一樣的原理,不再多介紹。
相關文章
- JavaScript包裝物件JavaScript物件
- JavaScript 複習之包裝物件,Boolean物件,Number物件JavaScript物件Boolean
- 物件,包裝類物件
- javascript物件導向包裝類Class的類庫解析JavaScript物件
- JavaScript高階:JavaScript物件導向,JavaScript內建物件,JavaScript BOM,JavaScript封裝JavaScript物件封裝
- JavaScript學習筆記023-物件方法0包裝物件0靜態屬性JavaScript筆記物件
- JavaScript物件導向~ 作用域和閉包JavaScript物件
- javascript對於值型別資料的物件包裝簡單介紹JavaScript型別物件
- Javascript 之基本包裝型別JavaScript型別
- JavaScript碎片———函式閉包(模擬物件導向)JavaScript函式物件
- 常見物件-基本型別包裝類物件型別
- JavaScript物件導向之一(封裝)JavaScript物件封裝
- JavaScript中的包裝型別詳解JavaScript型別
- 函式物件、裝飾器、閉包函式函式物件
- [JAVA] Java物件導向之包裝類,拆箱、裝箱Java物件
- Javascript 物件 – 字串物件JavaScript物件字串
- JavaScript物件JavaScript物件
- JavaScript 物件JavaScript物件
- 《JavaScript 闖關記》之基本包裝型別JavaScript型別
- Vue原始碼學習二 ———— Vue原型物件包裝Vue原始碼原型物件
- 裝飾者模式-動態的包裝原有物件的行為模式物件
- javascript物件導向封裝簡單介紹JavaScript物件封裝
- Javascript 物件導向程式設計(一):封裝JavaScript物件程式設計封裝
- Javascript 物件 – 數學物件JavaScript物件
- Javascript 物件 – 陣列物件JavaScript物件陣列
- JS中資料型別、內建物件、包裝型別物件、typeof關係JS資料型別物件
- Scala中的包以及包物件物件
- JavaScript閉包JavaScript
- JavaScript 閉包JavaScript
- JavaScript - 閉包JavaScript
- javascript物件導向的封裝簡單介紹JavaScript物件封裝
- JavaScript window物件JavaScript物件
- JavaScript Promise物件JavaScriptPromise物件
- JavaScript Array物件JavaScript物件
- JavaScript Symbol物件JavaScriptSymbol物件
- JavaScript Set物件JavaScript物件
- JavaScript Function物件JavaScriptFunction物件
- JavaScript Number 物件JavaScript物件