有两种比较有效地判断方法,但是注意他们的使用场景
1,typeof
typeof 常用来判断 原始类型 如字符串(string),数字(number),布尔值(boolean),‘undefined’。
如果要检测null,直接用===或!== 即可,如(ele === null) (ele !== null)
因为typeof null //object
2, instanceof
instanceof 常用来检测引用值,也称作对象(object)。
如{ }, [], new Date(), new RegExp(). 他们的typeof 都是object,所以不能使用typeof进行区分判断,要使用instanceof 。返回的将是一个布尔值。
如:[1,2] instanceof Array //true
instanceof可以用来检测某对象是不是某构造函数的实例,不过由于instanceof会检测原型链,比如所有的对象都继承自Object,则 value instanceof Object都会返回true。这是需要注意的。
而检测函数的最好办法是使用 typeof。