使用'+'运算符为对象添加前缀的是什么?

时间:2013-02-19 06:27:34

标签: javascript underscore.js

我在Underscore.js的_.each实现中遇到了这行代码,我很好奇这里发生了什么。 obj前面的'+'做什么?

if (obj.length === +obj.length) { ... }

1 个答案:

答案 0 :(得分:1)

if测试obj.length是数字而不是NaN。右侧始终是一个数字(如果NaN不能被解释为数字,则为obj.length。如果===也是数字,则只有obj.length左侧。

请注意,如果isNaN是一个看起来像数字的字符串,则使用obj.length将不起作用;也就是说,isNan("3")会返回false。另请注意,NaN === NaNfalse - NaN永远不会===