1、typeof
// typeof 返回的是类型的字符串值
typeof undefined === 'undefined' // true typeof true === 'boolean' // true typeof 42 === 'number' // true typeof "42" === "string" // true typeof { life : 42 } === "object" // true
// 特殊的类型 typeof null === "object" // true // 需要用复合条件去检测null var a = null; (!a && typeof a === "object"); // true
typeof function a(){/** */} === "function"; // true
2、valueOf()
函数用于返回指定对象的原始值。
该方法属于Object
对象,由于所有的对象都"继承"了Object的对象实例,因此几乎所有的实例对象都可以使用该方法。
所有主流浏览器均支持该函数。
var array = ["CodePlayer", true, 12, -5]; document.writeln( array.valueOf() === array ); // true
3、instanceof
运算符用来测试一个对象在其原型链中是否存在一个构造函数的 prototype
属性。
var a=new Array(); alert(a instanceof Array); // true
另外,更重的一点是 instanceof 可以在继承关系中用来判断一个实例是否属于它的父类型。 例如: function Foo(){} Foo.prototype = new Aoo();//JavaScript 原型继承 var foo = new Foo(); console.log(foo instanceof Foo)//true console.log(foo instanceof Aoo)//true 上面的代码中是判断了一层继承关系中的父类,在多层继承关系中,instanceof 运算符同样适用。 又如: console.log(Object instanceof Object);//true console.log(Function instanceof Function);//true console.log(Number instanceof Number);//false console.log(String instanceof String);//false console.log(Function instanceof Object);//true console.log(Foo instanceof Function);//true console.log(Foo instanceof Foo);//false