好久之前看的高程,最近有些忘記了,疑惑基本包裝型別存在的意義,下面總結一下:
為了便於操作基本型別,ecmascript提供了三個特殊的引用型別:boolean、number、string。實際上,每當讀取乙個基本型別值的時候,後台就會建立乙個對應的基本包裝型別的物件,從而讓我們能夠呼叫一些方法來操作這些資料。
var s1=
"nice"
;var s2=s1.
substring(2
);
在你寫出上面的**時,後台都會完成如下操作:
1. 建立string型別的乙個例項
2. 在例項上呼叫指定方法
3. 銷毀這個例項
可以想象為:
var s1=
newstring
("nice");
var s2=s1.
substring(2
);s1=
null
經過此番處理,基本型別的字串值就變得像物件一樣了。
引用型別與基本包裝型別的主要區別就是物件的生存期。使用new操作符建立的引用型別的例項,在執行流離開當前作用域之前一直都儲存在記憶體中。而自動建立的基本包裝型別的物件,只存在一行**的執行瞬間,然後立即被銷毀。這意味著我們不能在執行時為基本型別新增屬性和方法。
當然可以顯示建立基本包裝型別,對這樣的例項呼叫typeof會返回「object」,而且基本包裝型別的物件在裝換為布林型別值的時候會返回true。
基本包裝型別
為了便於操作基本資料型別,提供了三個特殊的引用型別,boolean,number和string,這些型別和其他引用型別相似,但是同時也具備和自己相應的資料型別的特殊行為,實際上每當讀取乙個基本型別的數值後,後台都會為我們建立對應的基本包裝型別的物件,從而能夠呼叫一些方法處理這些資料。var box ...
基本包裝型別
基本包裝型別有number boolean string三種。主要用途是擴充套件基本資料型別number boolean string的功能。因為這些基本資料型別本身不具備任何方法。在基本資料型別操作時,比如 abc substr 0,2 在執行這段 時,實際上 abc 是乙個基本資料型別,本身並沒...
基本包裝型別
基本包裝型別 兩個原則 普通變數不能直接呼叫屬性或者方法 物件可以直接呼叫屬性和方法 基本包裝型別 本身是基本型別 number,string,boolean 但在執行 中,如果這種型別的變數呼叫了屬性或者是方法 那麼這種型別就不再是基本型別而是基本包裝型別 注意 如果是乙個物件 true,結果是t...