2013-02-19 87 views

回答

1

if测试,obj.length是数字,而不是NaN。右侧始终是一个数字(或NaN,如果obj.length不能被解释为数字)。如果obj.length也是一个数字,它只会在左边===

请注意,如果obj.length是一个数字外观字符串,则使用isNaN将不起作用;即isNan("3")返回false。还请注意,NaN === NaNfalseNaN从来没有===任何东西。

+1

那么比较同一个对象的.length属性有什么意义呢?一次是'强制编号',一次不是?这完成了什么? – alnafie 2013-02-19 06:36:27

+0

@alnafie - 我必须查看代码才能知道,但是我最初的猜测是它会绕过代码,要么需要'obj.length'是一个数字,要么是一些昂贵的代码来计算'obj.length如果它已经正确设置,应该跳过。 – 2013-02-19 06:42:03