类型检测
1.typeof
数组,null, object会打印相同值 需要二次校验
1 | console.log(typeof 2); // number |
2.Object.prototype.toString.call(x)
1 | var a = Object.prototype.toString; |
3.instanceof
1 |
|
instanceof 运算符用来测试一个对象在其原型链中是否存在一个构造函数的 prototype 属性。其意思就是判断对象是否是某一数据类型(如Array)的实例,请重点关注一下是判断一个对象是否是数据类型的实例。在这里字面量值,2, true ,’str’不是实例,所以判断值为false
null 和 undefined 报异常
4.constructor
1 | console.log(bool.constructor === Boolean);// true |
null、undefined没有construstor方法,因此constructor不能判断undefined和null,并且它是不安全的,因为contructor的指向是可以被改变