|
1 | | -# Оператор объединения с null '??' |
| 1 | +# Оператор нулевого слияния (??) |
2 | 2 |
|
3 | 3 | [recent browser="new"] |
4 | 4 |
|
5 | 5 | В этой статье мы будем говорить, что значение выражения "определено", если оно отличается от `null` или `undefined`. |
6 | 6 |
|
7 | | -Оператор объединения с null представляет собой два вопросительных знака `??`. |
| 7 | +Оператор нулевого слияния представляет собой два вопросительных знака `??`. |
8 | 8 |
|
9 | 9 | Результат выражения `a ?? b` будет следующим: |
10 | 10 | - `a`, если значение `a` определено, |
11 | 11 | - `b`, если значение `a` не определено. |
12 | 12 |
|
13 | 13 | То есть оператор `??` возвращает первый аргумент, если он не `null/undefined`, иначе второй. |
14 | 14 |
|
15 | | -Оператор объединения с null не является чем-то принципиально новым. Это всего лишь удобный синтаксис, как из двух значений получить одно "определённое". |
| 15 | +Оператор нулевого слияния не является чем-то принципиально новым. Это всего лишь удобный синтаксис, как из двух значений получить одно "определённое". |
16 | 16 |
|
17 | 17 | Вот как можно переписать выражение `result = a ?? b`, используя уже знакомые нам операторы: |
18 | 18 |
|
@@ -76,7 +76,7 @@ alert(firstName || lastName || nickName || "Аноним"); // Суперкод |
76 | 76 |
|
77 | 77 | Оператор ИЛИ `||` существует с самого появления JavaScript, поэтому ранее для решения похожих задач разработчики использовали именно его. |
78 | 78 |
|
79 | | -С другой стороны, сравнительно недавно в язык был добавлен оператор объединения с null `??` как раз потому, что многие были недовольны оператором `||`. |
| 79 | +С другой стороны, сравнительно недавно в язык был добавлен оператор нулевого слияния `??` как раз потому, что многие были недовольны оператором `||`. |
80 | 80 |
|
81 | 81 | Важное различие между ними заключается в том, что: |
82 | 82 | - `||` возвращает первое *истинное* значение. |
|
0 commit comments