- typeof(数组,对象,null都返回Object)
typeof 2
typeof ''
typeof false
typeof function(){}
- instanceof(只能判断引用数据类型)
[] instanceof Array
console.log({} instanceof Object)
console.log(function(){} instanceof Function)
- constructor(如果创建对象改变该数据原型,则constructor属性失效)
let str = ''
str.constructor === String //true
function Fn(){}
Fn.prototype = new Array()
let f1 = new Fn()
Fn.constructor === Function //true
f1.constructor === Function //false
f1.constructor === Array //true
- Object.prototype.toString.call( )(使用 Object 对象的原型方法 toString 来判断数据类型)
let value = Object.prototype.toString
value.call(2)
value.call('').slice(8,-1)
value.call({}).slice(8,-1)
value.call([]).slice(8,-1)
- Object.prototype.toString.call( )
Object.prototype.toString.call([]).slice(8,-1) === 'Array'
- 原型链
[]._proto_ === Array.prototype //true
- Array.isArray( )
Array.isArray([])
- instanceof
[] instanceof Array
- Array.prototype.isPrototypeOf
Array.prototype.isPrototypeOf([])