可能重复:
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中多次进行相同类型的比较,所以 我很确定这不是一个错字。
如果有人能指出我的文章,或者向我提出一些正确的术语,我会很感激:)。谢谢!
答案 0 :(得分:4)
检查length
属性是否为数字。当应用一元+
时,它将返回对象或NaN
的数字表示,这将是比较通过或失败的基础。对于第一种情况,如果obj
没有length
属性,则+undefined
将返回NaN
。如果obj.length
是数字,则条件将通过。