console.log(0.5 | 0); // 0
console.log(-1 | 0); // -1
console.log(1 | 0); // 1
Warum wird 0.5 | 0
Null zurückgegeben, aber jede Ganzzahl (einschließlich Negativ) gibt die Eingabe-Ganzzahl zurück? Was macht das Einzelrohr ("|")?
javascript
Matrym
quelle
quelle
Antworten:
Dies ist ein bisschen oder .
Da bitweise Operationen nur für ganze Zahlen sinnvoll sind,
0.5
wird sie abgeschnitten.0 | x
istx
für jedenx
.quelle
parseInt()
Der Bitvergleich ist so einfach, dass er fast unverständlich ist;) Schauen Sie sich dieses "Nybble" an
Durch bitweises ODER 6 und 10 erhalten Sie 14:
Schrecklich verwirrend!
quelle
alert(true | false) //yields 1; alert(true | true) //yields 1; alert(false | true) //yields 1; alert(false | false) //yields 0
Ein einzelnes Rohr ist ein bitweises ODER .
JavaScript schneidet alle nicht ganzzahligen Zahlen in bitweisen Operationen ab, daher wird es als
0|0
0 berechnet .quelle
Dieses Beispiel wird Ihnen helfen.
quelle