Typeof 类型判断
类型 | 结果 |
---|---|
Undefined | undefined |
Null | object |
Boolean | boolean |
Number | number |
BigInt | BigInt |
String | string |
Function | function |
Symbol | symbol |
其它 | object |
instanceof
通过 不可检测基础数据类型,检测引用类型时顺着原型链找数据类型,返回true/false。同时它能随意改变原型链指向,导致检测结果不准确。
let arr=[];
console.log(arr instanceof(Array)); //true
constructor
可以检测基础数据类型也能辨别数组和对象。同时它可随意更改constructor的值,导致辨别错误。
let arr=[];
console.log(arr.constructor === Array) //true
//更改数据指向
arr.prototype.constructor = 'a'; //改为字符串类型
console.log(arr.constructor===Array) //false