Possible Duplicate:
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中进行了多次,所以 我相当确定这不是一个拼写错误。
如果有人能给我指出一篇文章,或者向我提供一些正确的术语,我将不胜感激:)。谢谢!
最佳答案
它正在检查 length
属性是否为数字。当应用一元 +
时,它将返回对象的数字表示或 NaN
,这将是比较通过或失败的基础。对于第一种情况,如果 obj
没有 length
属性,它将是 +undefined
,它将返回 NaN
>。如果 obj.length 是数字,则条件将通过。
关于Javascript 比较值 === +值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14108008/