数据类型
- 简单数据类型(number、string、boolean、null、undefined、symbol)
- 复杂数据类型(object、Array)
typeof
typeof只能精确判断简单数据类型,复杂数据类型统一返回object
let obj={
name:'121'
}
console.log(typeof obj);
console.log(typeof null);// object
instanceof
instanceof可以判断复杂数据类型,无法精确判断undefined和null,不能精确的判断出基本数据类型
console.log(obj instanceof Object);
console.log(obj instanceof Array);
console.log(obj instanceof undefined);
constructor
constructor不仅可以判断简单数据类型,也可以判断复杂数据类型,返回值是一个Boolean
null和undefined上面没有constructor函数,所以对null和undefined无效
console.log(arr.constructor==Array);
toString
toString.call通用的判断数据类型
- toString是挂载在原型上的,只要原型上有,就可以用Object.prototype.toString.call()来检测数据类型
let reg = /^[1]/
console.dir(reg);
let date = new Date()
console.log(Object.prototype.toString.call(arr));//[object Array]