类型检测
类型检测的方法
typeof
instanceof
Object.prototype.toString
constructor
typeof
typeof操作符返回一个字符串,表示未经计算的操作数的类型
我指举例出异常的几个
typeof undefined; // undefined
typeof null; // object
typeof NaN // number
typeof [1,2]; // object
typeof new Object(); // object
注:typeof操作符适合对基本类型,而对引用数据类型等不合适使用
instanceof
instanceof运算符用于检测一个对象在其原型链中是否存在一个构造函数的proptotype属性。
//左操作数为对象,不是就返回false,右操作数必须是函数对象或者函数构造器,不是就返回`TypeError`异常 obj instanceof constr;
任何一个构造函数都有一个prototype对象属性,这个对象属性将用new实例化对象的原型对象。
-
instanceof适合用于判断对象是否属于Array、Date和RegExp等内置对象
Object.prototype.toString
可以通过
toString来获取每个对象的类型。
检测的时候为了每个对象都能通过Object.prototype.toString()来检测,需要以Function.prototype.call或者Function.prototype.call或者Function.prototype.apply的形式来调用。
Obejct.prototype.toString.call(undefined);
// "[object Undefined]"
Obejct.prototype.toString.call(null);
// "[object Null]"
Obejct.prototype.toString.call(true);
// "[object Boolean]"
Obejct.prototype.toString.call('');
/// "[object String]"

被折叠的 条评论
为什么被折叠?



