Movatterモバイル変換


[0]ホーム

URL:


  1. Веб-технологии для разработчиков
  2. JavaScript
  3. Справочник по JavaScript
  4. Выражения и операторы
  5. Присваивание логического ИЛИ (||=)

This page was translated from English by the community.Learn more and join the MDN Web Docs community.

View in EnglishAlways switch to English

Присваивание логического ИЛИ (||=)

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨сентябрь 2020 г.⁩.

Оператор присваивания логического ИЛИ (x ||= y) присваивает значение переменнойx только в случае, если её текущее значениеложноподобно.

Интерактивный пример

const a = { duration: 50, title: "" };a.duration ||= 10;console.log(a.duration);// Expected output: 50a.title ||= "title is empty.";console.log(a.title);// Expected output: "title is empty."

Синтаксис

js
expr1 ||= expr2;

Описание

Сокращённое вычисление

Операторлогического ИЛИ работает следующим образом:

js
x || y;// возвращает x, если x истинноподобен// возвращает y, если x не истинноподобен

Оператор логического ИЛИ OR производит вычисление по сокращённой схеме: второй операнд будет вычисляться только в случае, если при вычислении первого операнда не удалось получить значение.

Оператор присваивания логического ИЛИ также поддерживает сокращённое вычисление, т.е. выполнит операцию присваивания только при вычислении правого выражения. Проще говоря,x ||= y эквивалентно следующему коду:

js
x || (x = y);

В отличие от следующего примера, где операция присваивания произойдёт в любом случае:

js
x = x || y;

Обратите внимание, что математические и побитовые операторы присваивания работают по-разному.

Примеры

Определение значения по умолчанию

Если в элементе с идентификатором "lyrics" нет содержимого, то следующее выражение вставит в него надпись:

js
document.getElementById("lyrics").textContent ||= "Нет слов.";

В данном примере сокращённое вычисление очень сильно выручает, поскольку элемент будет обновляться только при необходимости, что позволит избежать подобных эффектов вроде ненужного рендеринга, потери фокуса и т.д.

Примечание: обратите внимание на значение в левом операнде. Если это пустая строка (ложноподобное значение), то должно использовать оператор||=, в противном случае — оператор??= (если ожидается получение значенияnull илиundefined).

Спецификации

Specification
ECMAScript® 2026 Language Specification
# sec-assignment-operators

Совместимость с браузерами

Смотрите также

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp