文章參考 -- 原始型別 與 物件型別
原始型別的包裹物件
原始型別會有「屬性」以及「方法」是因為這些型別有著相對應的包裹物件 (Primitive Wrapper)。
這些方法或屬性是什麼意思呢?
例如: 我們可以透過字串型別的方法來知道字串有幾個字元'。
var a = 'Joseph'; //這是字串型別
console.log(a.length); // 6
var a = 'Joseph '; //這是字串型別(最後也一個空格字元)
console.log(a.length); // 7
//利用方法將字串改為大寫
console.log(a.toUpperCase()); //'JOSEPH '
//利用方法將空格字元刪減
console.log(a.trim()); //'Joseph'
上面這些方法就是在包裹物件內!
甚麼是包裹物件?
包裹物件就是當我們宣告原是型別時,所包裹進來的方法!
var a = 'Joseph';
var e = new String(a);
console.log(a, e);
(圖一)
(圖二)
可以看到圖二照片中的'proto',這個proto就是這個包裹物件的原型,點開裡面可以看到所有的方法。
(圖三) 註: 還有很多方法不再截圖內
當我們在操作原始型別的時候,它會自動把這種包裹物件直接套用進來
特別注意
在宣告一個原始型別時,要注意不要以這種方式宣告:
var e = new String(a); //不要以這種方式宣告
這種方法我們稱為建構式,以建構式宣告的型別並不是原始型別,它會是物件型別。
var e = new String(a); //建構式
console.log(typeof e); //object
操作會與原始型別不同喔!