1. typeof
主要用于判断基本数据类型
不能判断引用数据类型
2.instanceof
主要用于判断引用数据类型
不能判断基本数据类型
原理: 判断某个实例对象是否是这个构造函数的实例
需要注意一点:
如果判断数组和对象的话,需要优先判断数组的类型
console.log([] instanceof Object); // true
console.log({} instanceof Object); // true
为什么上面都打印 true
实际上数组和对象的祖先都是Object
3. Object.prototype.toString.call()
用于判断所有的数据类型