me encontré con el siguiente código en un proyecto JS:¿Qué hace el operador | = en JavaScript?
var a = new Array();
a[0] = 0;
for (var b = 0; b < 10; b++) {
a[0] |= b;
}
¿Qué significa el |=
hacer en el cuerpo del bucle?
El ejemplo de código es dudoso, pero se ha presentado here por V8 para obtener un ejemplo de rendimiento mejorado.
Actualización Ejemplo
El ejemplo anterior es equivalente a var a = [15];
para la mayoría de los efectos. Un ejemplo más realista para el operador |=
sería la creación de banderas binarias en una sola variable, por ejemplo en un objeto de permiso:
//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
}
Me acabo de dar cuenta de que el código es de aquí. http://www.html5rocks.com/en/tutorials/speed/v8/ – razpeitia
@razpeitia lee la pregunta y encontrarás esa URL ... – ContentiousMaximus