Страницы

Поиск по вопросам

вторник, 9 июля 2019 г.

Как понять данную запись с пайплайном (“|”)? [дубликат]

На данный вопрос уже ответили: Как поделить число нацело в javascript? 6 ответов Есть такая вот строчка кода: (i / 3 | 0) * 10. i принимает значения от 0 до 14. Как ее понять и, что более важно, можно ли (а если можно, то как) записать это более очевидно?
Для полного "Дзена" было бы еще неплохо получить хотя бы примерное представление о том, как она работает на примере двоичного числа.


Ответ

Знак | является оператором "побитовое или". num | 0 не меняет биты числа как таковой, поэтому число num не меняется. Но в комментариях к вопросу было выяснено, что в JavaScript при этом отбрасывается дробная часть. То есть суть данного выражения - приведение дробного числа к целому. В данном конкретном примере берется целая часть от выражения i / 3 (и умножается на 10, вестимо).
Также, наверное, стоит упомянуть про приоритет выполнения. У операции | приоритет ниже, чем у арифметических операций, поэтому скобки вокруг i / 3 здесь не нужны.

Комментариев нет:

Отправить комментарий