五种方法总结
typeof:这种方法只能检测基本数据类型,null 和对象的不准
instanceof:只要是基本数据类型检测就是false,只要是引用数据类型,并且右边是 Object 就是true,可以很好的区分是哪一大类型
constructor:可以检查基本和引用数据类型,但是可以被修改,有一定的缺陷
Object.prototype.toString.call():这种方式是最准的,什么类型都可以检测
Object.getPrototypeOf():这种方法获取原型
1.typeof 返回对应类型的字符串
总结:typeof 检测基本数据类型比较准,null检测为object不代表它是引用数据类型,null为空是特殊的基本数据类型,引用数据类型都为 object,内置构造函数和函数都为 function
案例:
let num = 123
let str = "123"
let bool = true
let arr = []
let obj = {}
let fn = function () { }
let cla = class { }
console.log(typeof num); // number
console.log(typeof str); // string
console.log(typeof bool); // boolean
console.log(typeof null); // object 记住
console.log(typeof undefined); // undefined
console.log(typeof