console.log(0.5 | 0); // 0
console.log(-1 | 0); // -1
console.log(1 | 0); // 1
¿Por qué 0.5 | 0devuelve cero, pero cualquier entero (incluido negativo) devuelve el entero de entrada? ¿Qué hace la tubería única ("|")?
javascript
Matrym
fuente
fuente

Respuestas:
Esto es un bit a bit o .
Como las operaciones bit a bit solo tienen sentido en enteros,
0.5se trunca.0 | xesx, para cualquierax.fuente
parseInt()La comparación de bits es tan simple que es casi incomprensible;) Mira este "nybble"
Bitwise ORing 6 y 10 le dará 14:
¡Terriblemente confuso!
fuente
alert(true | false) //yields 1; alert(true | true) //yields 1; alert(false | true) //yields 1; alert(false | false) //yields 0Una sola tubería es un OR inteligente .
JavaScript trunca cualquier número no entero en operaciones bit a bit, por lo que se calcula como
0|0, que es 0.fuente
Este ejemplo te ayudará.
fuente