3

Есть такая вот строчка кода: (i / 3 | 0) * 10. i принимает значения от 0 до 14. Как ее понять и, что более важно, можно ли (а если можно, то как) записать это более очевидно?

Для полного "Дзена" было бы еще неплохо получить хотя бы примерное представление о том, как она работает на примере двоичного числа.

smellyshovel
  • 5,224

1 Answers1

2

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

Также, наверное, стоит упомянуть про приоритет выполнения. У операции | приоритет ниже, чем у арифметических операций, поэтому скобки вокруг i / 3 здесь не нужны.

smellyshovel
  • 5,224