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

296
14 февраля 2017, 20:59

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

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

Answer 1

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

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

READ ALSO
Загрузка файла JSON с сервера

Загрузка файла JSON с сервера

Значения в массив подгружаются с сервера, из файла формата JSONПри помощи функции приведенной ниже

359
Проблема с slick carousel

Проблема с slick carousel

На сайте есть слайдеры сделанные с помощью slick carouselНа одной странице установлена 2 слайдера все работает нормально

394