我发现在JS项目下面的代码:运算符| =在JavaScript中做什么?
var a = new Array();
a[0] = 0;
for (var b = 0; b < 10; b++) {
a[0] |= b;
}
什么是|=
做的for循环的身体?代码示例是可疑的,但V8已经提供了here,以获得改进性能的示例。
更新了例
上面的例子是相当于var a = [15];
对于大多数的意图和目的。为|=
运营商A更现实的例子是建立二进制标志在一个单一的可变的,例如一个权限对象上:
//Set up permission masks
var PERMISSION_1_MASK = parseInt('0001',2);
var PERMISSION_2_MASK = parseInt('0010',2);
..
//Set up permissions
userPermissions = 0;
userPermissions |= hasPermissionOne && PERMISSION_1_MASK;
userPermissions |= hasPermissionTwo && PERMISSION_2_MASK;
..
//Use permissions
if(userPermissions & PERMISSION_1_MASK){
..//Do stuff only allowed by permission 1
}
我刚刚意识到它是来自这里的代码。 http://www.html5rocks.com/en/tutorials/speed/v8/ – razpeitia
@razpeitia阅读这个问题,你会发现这个网址... – ContentiousMaximus