- typeof吊奢,可以判斷原始數(shù)據(jù)類型:undefined、boolean咧叭、string蚀乔、number、symbol菲茬,但是typeof null的類型判斷為object吉挣。對于引用類型,會判斷為function婉弹、object兩種類型听想。
- instanceof ,instanceof 檢測的是原型,判斷一個(gè)實(shí)例是否屬于某種類型马胧。
function instanceOf(left,right) {
let proto = left.__proto__;
let prototype = right.prototype
while(true) {
if(proto === null) return false;
if(proto === prototype) return true;
proto = proto.__proto__;
}
}
Object.prototype.toString
toString() 是 Object 的原型方法,調(diào)用該方法衔峰,默認(rèn)返回當(dāng)前對象的類型佩脊。
Object.prototype.toString.call('') ; // [object String]
Object.prototype.toString.call(1) ; // [object Number]
Object.prototype.toString.call(true) ; // [object Boolean]
Object.prototype.toString.call(Symbol()); //[object Symbol]
Object.prototype.toString.call(undefined) ; // [object Undefined]
Object.prototype.toString.call(null) ; // [object Null]
Object.prototype.toString.call(new Function()) ; // [object Function]
Object.prototype.toString.call(new Date()) ; // [object Date]
Object.prototype.toString.call([]) ; // [object Array]
Object.prototype.toString.call(new RegExp()) ; // [object RegExp]
Object.prototype.toString.call(new Error()) ; // [object Error]
Object.prototype.toString.call(document) ; // [object HTMLDocument]
Object.prototype.toString.call(window) ; //[object global] window 是全局對象 global 的引用