这条线在做什么? arr.length>>> 0

时间:2012-02-20 23:47:48

标签: javascript operators

这是为了什么:

arr.length >>> 0

我为什么要使用它?

2 个答案:

答案 0 :(得分:8)

这是无符号右移操作符。在这种情况下(与0一起使用时),它确保arr.length是一个整数,或者更确切地说,将arr.length计算为严格的无符号32位整数值。 (这意味着它永远不会NaN,永远不会消极,并且永远不会有小数部分。)

示例:

'1'       >>> 0: 1
1         >>> 0: 1
''        >>> 0: 0
undefined >>> 0: 0
null      >>> 0: 0
1.0∙∙∙01  >>> 0: 1

比较:

Number('1')      : 1
Number(1)        : 1
Number('')       : 0
Number(undefined): NaN
Number(null)     : 0
Number(1.0∙∙∙01) : 1.0∙∙∙01

只是确保正确使用正确的长度。

答案 1 :(得分:5)

确保.length是32位整数。

在大多数实现中,数组索引限制为32位范围(至少在使用Array.prototype方法时,以及.length的神奇行为。< / p>