字符串不是對象類型春寿,但是表現(xiàn)的像對象一樣笔喉。
如下例子:
var mStr = "hello world";
var worldS = mStr.substring(mStr.indexOf(" "),mStr.length);
??我們可以看出字符串有類似對象的一些屬性和方法,問題來了鬼雀,字符串不是對象顷窒,為什么會有對象的屬性和方法呢?
??因為只要已用了字符串mStr
的屬性,JavaScript就會將字符串值通過調(diào)用new String(mStr)
的方式轉(zhuǎn)換成對象鞋吉,這個對象繼承了字符串的方法鸦做,并被用來處理屬性的引用。一點引用結(jié)束谓着,這個新傳經(jīng)的對象也被銷毀(其實在現(xiàn)實上并不一定是創(chuàng)建或者銷毀這個臨時對象泼诱,但是類似這樣的操作)。
??<small>再看一個例子:</small>
var mStr = "test";
mStr.mlength = 4;
var mLen = mStr.mlength;
?? 運行代碼只有發(fā)現(xiàn)mLen
的值是undefined
,是不是有點奇怪赊锚,這就說明在讀取字符串的時候治筒,表現(xiàn)的像對象一樣,但是是無法給其添加屬性的舷蒲,如果你試圖給其添加屬性值耸袜,則會忽略這個操作(添加屬性的操作只是發(fā)生在這個臨時對象身上,而這個臨時對象并未繼續(xù)保留下來)牲平。
??數(shù)字類型堤框,Boolean類型跟字符串相似。
自己也是剛開始接觸JS纵柿,有些東西必須剛學習的時候弄清楚