You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Каждый операнд конвертирует в логическое значение. Если результат `true`, останавливается и возвращает исходное значение этого операнда.
83
-
- Если все операнды были "ложными" (`false`), возвращает последний из них.
83
+
- Если все операнды являются ложными (`false`), возвращает последний из них.
84
84
85
85
Значение возвращается в исходном виде, без преобразования.
86
86
@@ -101,7 +101,7 @@ alert( undefined || null || 0 ); // 0 (поскольку все ложно, в
101
101
102
102
1.**Получение первого истинного значения из списка переменных или выражений.**
103
103
104
-
Представьте, что у нас имеется несколько переменных, которые могут содержать данные или быть `null/undefined`. Как мы можем найти первую переменную с данными?
104
+
Представим, что у нас имеется ряд переменных, которые могут содержать данные или быть `null/undefined`. Как мы можем найти первую переменную с данными?
105
105
106
106
С помощью `||`:
107
107
@@ -121,7 +121,7 @@ alert( undefined || null || 0 ); // 0 (поскольку все ложно, в
121
121
122
122
Операндами могут быть как отдельные значения, так и произвольные выражения. ИЛИ вычисляет их слева направо. Вычисление останавливается при достижении первого истинного значения. Этот процесс называется "сокращённым вычислением", поскольку второй операнд вычисляется только в том случае, если первого не достаточно для вычисления всего выражения.
123
123
124
-
Это хорошо заметно, когда выражение, указанное в качестве второго аргумента, имеет изменение состояния, такое как присвоение переменной.
124
+
Это хорошо заметно, когда выражение, указанное в качестве второго аргумента, имеет побочный эффект, например, изменение переменной.
125
125
126
126
В приведенном ниже примере `x` не изменяется:
127
127
@@ -143,7 +143,7 @@ alert( undefined || null || 0 ); // 0 (поскольку все ложно, в
143
143
alert(x); // 1
144
144
```
145
145
146
-
Присвоение - простой случай. Могут быть и другие.
146
+
Присваивание - лишь один пример. Конечно, могут быть и другие побочные эффекты, которые не проявятся, если вычисление до них не дойдет.
147
147
148
148
Как мы видим, этот вариант использования `||` является "аналогом `if`". Первый операнд преобразуется в логический. Если он оказывается ложным, начинается вычисление второго.
Как и в случае с ИЛИ, любое значение допускается в качестве операнда И:
181
181
182
182
```js run
183
-
if (1 && 0) { // оценивается как true && false
183
+
if (1 && 0) { // вычисляется как true && false
184
184
alert( "won't work, because the result is falsy" );
185
185
}
186
186
```
@@ -246,7 +246,7 @@ let x = 1;
246
246
(x > 0) && alert( 'Greater than zero!' );
247
247
```
248
248
249
-
Действие в правой части `&&` выполнится только в том случае, если до него дойдут вычисления. То есть, `alert` сработает, если в левой части будет `true`.
249
+
Действие в правой части `&&` выполнится только в том случае, если до него дойдут вычисления. То есть, `alert` сработает, если в левой части (`x > 0)`будет `true`.
0 commit comments