В JavaScript символ вертикальной черты «|» и двойная вертикальная черта «||» имеют разные значения и используются в разных контекстах. Вот разница между ними:
-
| (Одна вертикальная полоса):
Одиночная вертикальная черта — это побитовый оператор ИЛИ в JavaScript. Он выполняет побитовую операцию ИЛИ над двумя операндами, рассматривая их как двоичные числа. Он сравнивает каждый бит операндов и возвращает новое значение с битами, установленными в 1, если хотя бы один из соответствующих битов в операндах равен 1.Пример:
const a = 5; // Binary: 0101 const b = 3; // Binary: 0011 const result = a | b; // Binary: 0111 (Decimal: 7) -
|| (Двойная вертикальная черта):
Двойная вертикальная черта — это логический оператор ИЛИ в JavaScript. Он выполняет логическую операцию ИЛИ над двумя операндами, оценивая значениеtrue, если хотя бы один из операндов имеет значениеtrue. Он возвращает первое встреченное истинное значение или последний операнд, если все операнды ложны.Пример:
const a = 5; const b = 3; const result = a || b; // result is 5 (true)В приведенном выше примере, поскольку
aявляется достоверным значением (отличным от нуля), выражениеa || bвозвращаетa.
Подводя итог, можно сказать, что одна вертикальная черта “|” используется для побитовой операции ИЛИ, а двойная вертикальная черта “||” используется для логической операции ИЛИ. Побитовый оператор ИЛИ сравнивает отдельные биты, тогда как логический оператор ИЛИ сравнивает истинность операндов.