以下Javascript语句对a
做了什么?
a >>>= b;
答案 0 :(得分:13)
答案 1 :(得分:5)
我正确地将值移动到b中的值指定的位数,而不保持符号。
就像>> =运算符一样,权限会移动一个值,只有那个不会改变数字的符号。
示例:
var a = -1;
// a now contains -1, or 11111111 11111111 11111111 11111111 binary
var b = 1;
a >>>= b;
// a now contains 2147483647, or 01111111 11111111 11111111 11111111 binary.
答案 2 :(得分:3)
这是一个称为零填充右移的按位运算符。它会将a
的二进制表示向右移动b
个位置,并用零替换空项。然后,结果将分配给a
。
答案 3 :(得分:0)
Crockford points out虽然JavaScript具有像>>>
这样的按位运算符,但在其原生双精度浮点数上使用它们意味着在内部来回转换为整数。它们不如使用本机整数数据类型的其他语言那样高效。