测试变量是原始而不是对象?

时间:2015-07-21 11:38:25

标签: javascript

是否可以测试变量以查看它是否是原语?

我已经看到很多关于测试变量的问题,看看它是否是一个对象,而不是测试一个原语。

这个问题是学术性的,我实际上并不需要从我自己的代码中执行此测试。我只是想更深入地了解JavaScript。

2 个答案:

答案 0 :(得分:34)

测试任何原语:

function isPrimitive(test) {
    return (test !== Object(test));
};

示例:

isPrimitive(100); // true
isPrimitive(new Number(100)); // false

http://jsfiddle.net/kieranpotts/dy791s96/

答案 1 :(得分:10)

Object接受一个参数,如果它是一个对象则返回,否则返回一个对象。

然后,您可以使用严格的相等比较,比较类型和值。

如果value是对象,则Object(value)将是同一个对象,因此value === Object(value)。如果value不是对象,value !== Object(value)因为它们将具有不同的类型。

所以你可以使用

Object(value) !== value