JavaScript 三重大于
IT技术
javascript
2021-02-04 09:47:21
4个回答
忽略其预期含义,这很可能是您看到它使用的地方:
>>> 0
它的独特之处在于它是唯一将任何类型转换为正整数的运算符:
"string" >>> 0 == 0
(function() { }) >>> 0 == 0
[1, 2, 3] >>> 0 == 0
Math.PI >>> 0 == 3
在您的示例中var len = this.length >>> 0
,这是一种获取整数长度以用于迭代的方法this
,无论类型this.length
是什么。
同样,~~x
可用于将任何变量转换为有符号整数。
该运算符是逻辑右移。这里的数字被移动了 0 位。数学上的零位移位应该没有影响。
但在这里它用于将值转换为无符号的 32 位整数。
>>>
是一个按位运算符,零填充右移。
我认为>>> 0
对正数的唯一影响是向下舍入到最接近的整数,与Math.floor()
. 我不明白为什么这在您的示例中是必要的,因为通常.length
属性(例如 an Array
)已经是一个整数。
我还看到了~~
以相同方式使用的稍短的:~~9.5 == 9; // true
.
其它你可能感兴趣的问题