原始类型(值类型):Undefined、Null、Number、String、Boolean;
对象类型(引用类型):Object;
typeof
可以识别标准类型,null外(返回Object);不能识别具体对象类型(Function除外)。
用法举例:
var num = 100; typeof num; // 或 typeof(num) --> number
注:除number 、string、boolean、undefined、function类型外,其余类型都判断为object(包括null)。
instanceof
可以判别内置对象类型、自定义对象类型;不能判别原始类型。
var arr = []; arr instanceof Array; -->true
Object.prototype.toString.call()
可以识别标准类型、内置对象类型;不能识别自定义对象类型。
Object.prototype.toString.call(123); // --> [object Number]
constructor
可以判别内置对象类型、自定义对象类型、标准类型(但Underfined/Null不能识别)。
var num = 100; num.constructor === Number; // --> true;
返回构造器写法:
function getConstructorName(obj){ return (obj===undefined||obj===null)?obj:(obj.constructor&&obj.constructor.toString().match(/function\s*([^(]*)/)[1]); } // match()把返回的 function Number() { [native code] } 中的Number拿到。
时间: 2024-10-11 21:55:39