console.log(0.5 | 0); // 0
console.log(-1 | 0); // -1
console.log(1 | 0); // 1
Por que 0.5 | 0
retornar zero, mas qualquer número inteiro (incluindo negativo) retorna o número inteiro de entrada? O que o tubo único ("|") faz?
javascript
Matrym
fonte
fonte
Respostas:
Este é um bit a bit ou .
Como as operações bit a bit só fazem sentido em números inteiros,
0.5
é truncado.0 | x
éx
, para qualquerx
.fonte
parseInt()
A comparação de bits é tão simples que é quase incompreensível;) Confira este "nybble"
ORing bit a bit 6 e 10 fornecerá 14:
Terrivelmente confuso!
fonte
alert(true | false) //yields 1; alert(true | true) //yields 1; alert(false | true) //yields 1; alert(false | false) //yields 0
Um único pipe é um OR bit a bit .
O JavaScript trunca qualquer número não inteiro em operações bit a bit, então é calculado como
0|0
, que é 0.fonte
Este exemplo irá ajudá-lo.
fonte