javascript是一种弱类型的语言,大多数情况下我们不关心对象的具体类型。但也有时候需要对对象的类型做精确判断。这时候可以有以下几种方法:
typeof
typeof 运算符 typeof 是一元运算符,返回结果是一个说明运算数类型的字符串。如:"number","string","boolean","object","function","undefined"(可用于判断变量是否存在)。 但 typeof 的能力有限,其对于Date、RegExp类型返回的都是"object"。如:
typeof {}; // "object"
typeof []; // "object"
typeof new Date(); // "object"所以它只在区别对象和原始类型的时候才有用。要区一种对象类型和另一种对象类型,必须使用其他的方法。如:instanceof 运算符或对象的 constructor 属性。
instanceof运算符
[] instanceof Array; // true
[] instanceof Object; // true
[] instanceof RegExp; // false
new Date instanceof Date; // true
所以,可以用instanceof运算符来判断对象是否为数组类型:
function isArray(arr){
return arr instanceof Array;
}
constructor属性
function isArray(arr){
return arr instanceof Array;
}function isArray(arr){
return typeof arr == "object" && arr.constructor == Array;
}
346



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



