首頁  >  文章  >  web前端  >  關於javascript中的typeof和instanceof介紹_基礎知識

關於javascript中的typeof和instanceof介紹_基礎知識

WBOY
WBOY原創
2016-05-16 17:47:17992瀏覽

typeof用來偵測給定變數的資料型別(也可稱為基本型,基本資料型別。包含undefined、boolean、string、number、object、function)
var message = "so easy";
alert(typeof message); //"string"
alert(typeof 12); //"number"

可以這樣記憶:typeof是用來判斷不是用new創建的「變數」。

instanceof用來偵測物件的型別(也可叫做參考型別。包含Object、Array、Date、RegExp、Function、基本包裝型別(含Boolean、Number、String))
var numberObject = new Number(10 );
var numberValue = 10;
alert(typeof numberObject); //"object"
alert(typeof numberValue); //"number"
alert(numberObject instanceof Number); //"number"
alert(numberObject instanceof Number); // true
alert(numberValue instanceof Number); //false
numberValue是number基礎資料型別,不屬於任何參考型別。

numberObject是object基礎資料型,屬於Number參考型別(所有參考型別都從Object引用型別繼承而來)。

可以這樣記憶:instanceof檢測的都是用new創建的「物件」。而沒有透過new創建出來的「變數」不屬於任何一個引用類型。用typeof偵測用new建立的「物件」總是回傳的是「object引用類型」.


isPrototypeOf()方法用來偵測原型和實例的關係。 instanceof同樣也可以檢測。只要是原型鏈中出現過的原型,都可以說是該原型鏈所衍生的實例的原型。
var person = new Person(); //Person繼承與Object
alert(Person.prototype.isPrototypeOf(person)); //true

alert(Object.prototype.isPrototypeOf(person)); //true

 
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn