diff options
author | Alexey Pyltsyn <lex61rus@gmail.com> | 2022-02-10 13:14:22 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-02-10 17:14:22 +0700 |
commit | 1c6846eb55f18f8b74810d3d83e541e80bcdf9e0 (patch) | |
tree | 5704b4db3e88dc909273cb5d0a9bfffd652ae990 /files/ru/web | |
parent | b0485d7a479d4e9e64283c12f17c91f68f7b0361 (diff) | |
download | translated-content-1c6846eb55f18f8b74810d3d83e541e80bcdf9e0.tar.gz translated-content-1c6846eb55f18f8b74810d3d83e541e80bcdf9e0.tar.bz2 translated-content-1c6846eb55f18f8b74810d3d83e541e80bcdf9e0.zip |
Перевод Logical_AND_assignment (#4046)
* Перевод Logical_AND_assignment
* Apply suggestions from code review
Co-authored-by: Alexander Myshov <myshov@users.noreply.github.com>
Co-authored-by: Alexander Myshov <myshov@users.noreply.github.com>
Diffstat (limited to 'files/ru/web')
-rw-r--r-- | files/ru/web/javascript/reference/operators/logical_and_assignment/index.md | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/files/ru/web/javascript/reference/operators/logical_and_assignment/index.md b/files/ru/web/javascript/reference/operators/logical_and_assignment/index.md new file mode 100644 index 0000000000..0759ac2a66 --- /dev/null +++ b/files/ru/web/javascript/reference/operators/logical_and_assignment/index.md @@ -0,0 +1,75 @@ +--- +title: Присваивание логического И (&&=) +slug: Web/JavaScript/Reference/Operators/Logical_AND_assignment +tags: + - JavaScript + - Language feature + - Logical assignment + - Operator + - Reference +browser-compat: javascript.operators.logical_and_assignment +--- +{{jsSidebar("Operators")}} + +Оператор присваивания логического И (`x &&= y`) присваивает значение переменной `x` только в случае, если её текущее значение {{Glossary("truthy", "истиноподобное")}}. + +{{EmbedInteractiveExample("pages/js/expressions-logical-and-assignment.html")}} + +## Синтаксис + +```js +expr1 &&= expr2 +``` + +## Описание + +### Сокращённое вычисление + +[Логический оператор И](/en-US/docs/Web/JavaScript/Reference/Operators/Logical_AND) вычисляется слева направо, делая возможным сокращённое вычисление выражения, согласно следующему правилу: + +`(ложноподобное выражение) && следующее выражение` — вычисление останавливается на ложноподобном выражении; + +Сокращённое вычисление хорошо тем, что `следующее выражение` не будет **вычислено**, т.е. всё, связанное с ним, будет проигнорировано (например, если +`следующее выражение` представляет собой вызов функции, то он никогда не произойдёт). + +Оператор присваивания логического И также поддерживает сокращённое вычисление, поэтому `x &&= y` по сути то же самое, что и выражение ниже: + +```js +x && (x = y); +``` + +В отличие от следующего примера, где операция присваивания произойдёт вне зависимости от результата вычисления: + +```js example-bad +x = x && y; +``` + +## Примеры + +### Использование оператора присваивания логического И + +```js +let x = 0; +let y = 1; + +x &&= 0; // 0 +x &&= 1; // 0 +y &&= 1; // 1 +y &&= 0; // 0 +``` + +## Спецификации + +{{Specifications}} + +## Поддержка браузерами + +{{Compat}} + +## Смотрите также + +- [Логическое И (&&)](/en-US/docs/Web/JavaScript/Reference/Operators/Logical_AND) +- [Оператор нулевого слияния (`??`)](/en-US/docs/Web/JavaScript/Reference/Operators/Nullish_coalescing_operator) +- [Присваивание побитового И (`&=`)](/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_AND_assignment) +- {{Glossary("Truthy", "Истиноподобное значение")}} +- {{Glossary("Falsy", "Ложноподобное значение")}} |