Javascript 在对象前面加上'+';接线员怎么办?
我在下划线.js的每个实现中都遇到了这行代码,我很好奇这里发生了什么。obj前面的“+”是做什么的Javascript 在对象前面加上'+';接线员怎么办?,javascript,underscore.js,Javascript,Underscore.js,我在下划线.js的每个实现中都遇到了这行代码,我很好奇这里发生了什么。obj前面的“+”是做什么的 if(obj.length===+obj.length){…}if测试obj.length是数字而不是NaN。右侧始终是一个数字(或NaN如果obj.length不能解释为数字)。如果obj.length也是一个数字,则它将仅位于左侧 请注意,如果obj.length是一个看起来像数字的字符串,那么使用isNaN将不起作用;也就是说,isNan(“3”)返回false。还要注意的是,NaN====
if(obj.length===+obj.length){…}
if
测试obj.length
是数字而不是NaN
。右侧始终是一个数字(或NaN
如果obj.length
不能解释为数字)。如果obj.length
也是一个数字,则它将仅位于左侧
请注意,如果
obj.length
是一个看起来像数字的字符串,那么使用isNaN
将不起作用;也就是说,isNan(“3”)
返回false
。还要注意的是,NaN====NaN
是false
-NaN
从来都不是==
任何东西。那么,比较同一对象的.length属性有什么意义,一次作为“强制数字”,一次不作为?这有什么作用?@alnafie-我必须看一下代码才能知道,但我最初的猜测是,这是一个关卡代码,它要么要求obj.length
是一个数字,要么是一些昂贵的代码来计算obj.length
,如果已经正确设置,那么应该跳过它。