mit*_*221 5 javascript operators
这个是来做什么的:
arr.length >>> 0
Run Code Online (Sandbox Code Playgroud)
我为什么要使用它?
这是未签名的右移操作员.在这种情况下(与其一起使用时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
Run Code Online (Sandbox Code Playgroud)
相比于:
Number('1') : 1
Number(1) : 1
Number('') : 0
Number(undefined): NaN
Number(null) : 0
Number(1.0???01) : 1.0???01
Run Code Online (Sandbox Code Playgroud)
只是确保正确使用正确的长度.
小智 5
确保这.length是一个32位整数.
在大多数实现中,数组索引限制在32位范围内(至少在使用Array.prototype方法时,以及魔术行为.length).