Javascript比较值=== +值

时间:2013-01-01 05:20:31

标签: javascript underscore.js

  

可能重复:
  javascript: plus symbol before variable
  obj.length === +obj.length in javascript

在查看source of underscore.js时,我遇到了这一行(#79)

//some stuff
} else if (obj.length === +obj.length) {
//do stuff

我不是100%肯定会发生什么,有人可以解释一下 obj.length值之前'+'的目的?会不会比较 如果它只是阅读:相同:

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

在underscore.js中多次进行相同类型的比较,所以 我很确定这不是一个错字。

如果有人能指出我的文章,或者向我提出一些正确的术语,我会很感激:)。谢谢!

1 个答案:

答案 0 :(得分:4)

检查length属性是否为数字。当应用一元+时,它将返回对象或NaN的数字表示,这将是比较通过或失败的基础。对于第一种情况,如果obj没有length属性,则+undefined将返回NaN。如果obj.length是数字,则条件将通过。