是否可以测试变量以查看它是否是原语?
我已经看到很多关于测试变量的问题,看看它是否是一个对象,而不是测试一个原语。
这个问题是学术性的,我实际上并不需要从我自己的代码中执行此测试。我只是想更深入地了解JavaScript。
答案 0 :(得分:34)
测试任何原语:
function isPrimitive(test) {
return (test !== Object(test));
};
示例:
isPrimitive(100); // true
isPrimitive(new Number(100)); // false
答案 1 :(得分:10)
Object
接受一个参数,如果它是一个对象则返回,否则返回一个对象。
然后,您可以使用严格的相等比较,比较类型和值。
如果value
是对象,则Object(value)
将是同一个对象,因此value === Object(value)
。如果value不是对象,value !== Object(value)
因为它们将具有不同的类型。
所以你可以使用
Object(value) !== value