Javascript比较值==+;价值

Javascript比较值==+;价值,javascript,underscore.js,Javascript,Underscore.js,可能重复: 当我看电视时,我遇到了这条线(#79) 我不是100%确定这里发生了什么,有人能解释一下吗 obj.length值前“+”的用途??比较结果如何 如果仅显示以下内容,则应完全相同: } else if (obj.length === obj.length) { 在underline.js中多次进行相同类型的比较,因此 我相当肯定这不是打字错误 如果有人能给我指出一篇文章,或者向我抛出一些正确的术语,我将不胜感激:)。谢谢 它正在检查length属性是否为数字。应用一元+时,它将

可能重复:

当我看电视时,我遇到了这条线(#79)

我不是100%确定这里发生了什么,有人能解释一下吗 obj.length值前“+”的用途??比较结果如何 如果仅显示以下内容,则应完全相同:

} else if (obj.length === obj.length) {
在underline.js中多次进行相同类型的比较,因此 我相当肯定这不是打字错误


如果有人能给我指出一篇文章,或者向我抛出一些正确的术语,我将不胜感激:)。谢谢

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

重复的。本质上,它相当于
Number()
构造函数。查看此链接了解更多详细信息:完全相同::您是否在发布问题之前尝试过搜索..?此答案实际上是错误的(或者可能只是在过去才正确?)。一元运算符不在对象上使用
.length
属性。相反,它使用对象的
valueOf
键尝试将其转换为数字。它与
Number()
构造函数的工作原理相同。如果要使用e,可以使用一元运算符。G将
“3”
字符串转换为数字类型。@Xen\u mar我的意思是表达式
obj.length==+obj.length
正在检查
length
属性是否为数字。我不是说一元加号在检查
长度
。对不起,如果不清楚的话。
} else if (obj.length === obj.length) {