J'ai trouvé le code suivant dans un projet JS :
var a = new Array();
a[0] = 0;
for (var b = 0; b < 10; b++) {
a[0] |= b;
}
Que fait le |=
dans le corps de la boucle for ?
L'exemple de code est douteux, mais il a été présenté ici par V8 pour un exemple d'amélioration des performances.
Exemple actualisé
L'exemple ci-dessus est équivalent à var a = [15];
à toutes fins utiles. Un exemple plus réaliste pour le |=
serait de configurer des drapeaux binaires dans une seule variable, par exemple sur un objet de permission :
//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
}