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) {