effective javascript(三)——原始類型優於封裝對象

javascript除了object外一共有5個原始類型:布爾值、數字、字符串、null和undefined。(其中null類型進行typeof操作結果爲“object”)

字符串原始類型和封裝對象異同

在某些地方,String對象的行爲和封裝的字符串值類似,如字符串連接:

var str = new String("learn");
str + " javascript" = "learn javascript";

如提取索引的值:

var str = new String("learn");
str[2] = a;

不同之處在於,原始字符串type爲string,String對象的type爲object。

typeof "learn" = stringvar str = new String("learn");
typeof str = object

兩個String對象比較,可以看出new的String對象,雖然值都等於”learning”,但str1和str2並不相等。

var str1 = new String("learning");
var str2 = new String("learning");
str1 === str2 // false
str1 == str2 // false

原始的字符串類型可以調用String原型對象裏的方法,如toUpperCase:

"learn".toUpperCase() = LEARN;

可以對原始字符串類型設置屬性值,但對原始字符串沒有任何影響:

"learn".testProperty = 3;
"learn".testProperty = undefined;

這是因爲每次原始字符串類型調用某個方法時,會進行隱式封裝產生一個新的String對象,所以不會對之後的字符串進行影響。


end…

發佈了48 篇原創文章 · 獲贊 40 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章