JavaScript基本包裝型別(自動裝箱和自動拆箱)(instanceof方法)
阿新 • • 發佈:2019-02-19
1)為了便於操作基本型別值,ECMAScript提供了3個特殊的引用類Boolean, Number, String每當讀取一個基本型別值的時候,後臺就會建立一個對應的基本包裝型別物件,從而可以使我們呼叫一些方法操作這些資料。
在建立變數s後(var s = "briup";)
後臺進行自動裝箱操作(var s = new String(briup);)
在變數s呼叫String物件的方法操作後,後臺自動拆箱,變成String基本資料型別
s.substring(2);
console.log(typeof s);//基本資料型別內的String
綜上:
後臺會自動完成以下操作: a.建立String型別的一個例項(var s = new String("briup");) b.在例項上呼叫指定的方法(s.substring(2);) c.銷燬這個例項
2)基本包裝型別的例項呼叫typeof返回”object”,從而所有基本包裝型別物件都會被轉換為布林型別的true.
Object建構函式會像工廠方法一些,根據傳入的值的型別返回相應基本包裝型別的例項 var obj = new Object("briup");//object型別 型別為String包裝型別 console.log(obj);//返回的是String型別的物件 console.log(obj instanceof String);//返回的是true 使用new呼叫基本包裝型別的建構函式,與直接呼叫同名的轉換函式不一樣 var s = "11"; var s1 = Number(s); //轉型函式 number型別 var s2 = new Number(s); //建構函式 object型別
3)instanceof方法:檢測引用型別
檢測某個物件或例項是不是屬於某個型別或函式
返回值:true或者false
例:
var arr=[1,2,3];
console.log(arr instanceof Array);//true