js中為什麼基本型別資料可以使用屬性和方法

antzone發表於2017-03-21

基本資料型別是沒有方法和屬性的,但是在實際應用中確實是可以使用。

程式碼如下:

[JavaScript] 純文字檢視 複製程式碼
var str="螞蟻部落歡迎您";
console.log(str.length);

以上程式碼可能很多朋友都感覺這是理所當然的事情,但是如果深入思考一下可能就會感覺有點問題,因為str是一個基本型別,是沒有屬性和方法的,但是程式碼依然可以使用length屬性,這是因為字串使用點(.)的時候會進行一些內部的包裝,將基本型別包裝成一個臨時物件,再來看一段程式碼例項:

[JavaScript] 純文字檢視 複製程式碼
var str="螞蟻部落歡迎您";
str.pro="antzone";
console.log(str.pro);

以上程式碼的輸出值是undefined,這是因為str.pro="antzone",臨時封裝成一個物件並新增屬性並賦值之後,臨時物件又立刻被銷燬了,所以最後輸出值是undefined。

相關文章