console.log(0.5 | 0); // 0
console.log(-1 | 0); // -1
console.log(1 | 0); // 1
Почему 0.5 | 0
возвращает ноль, но любое целое число (включая отрицательное) возвращает входное целое число? Что делает одна труба ("|")?
javascript
Matrym
источник
источник
Ответы:
Это побитовое или .
Поскольку побитовые операции имеют смысл только для целых чисел, они
0.5
усекаются.0 | x
естьx
, для любогоx
.источник
parseInt()
Сравнение битов настолько просто, что почти непостижимо;) Посмотри на этот "клочок"
Побитовое ORing 6 и 10 даст вам 14:
Страшно запутанно!
источник
alert(true | false) //yields 1; alert(true | true) //yields 1; alert(false | true) //yields 1; alert(false | false) //yields 0
Одиночная труба - это немного ИЛИ .
JavaScript обрезает любые нецелые числа в побитовых операциях, поэтому его вычисляется как
0|0
0.источник
Этот пример поможет вам.
источник