|
1 | 1 | ## `undefined` и `null`
|
2 | 2 |
|
3 |
| -В JavaScript есть два отдельных типа для представления `ничего`, при этом более полезным из них является `undefined`. |
| 3 | +В JavaScript есть два отдельных типа для описания *ничего* — `null` и `undefined`, при этом последний из них более полезен. |
4 | 4 |
|
5 |
| -### Тип `undefined` |
| 5 | +### Значение `undefined` |
6 | 6 |
|
7 | 7 | `undefined` — это тип с единственным возможным значением: `undefined`.
|
8 | 8 |
|
9 |
| -Кроме этого, в языке определена глобальная переменная со значением `undefined`, и эта переменная так и называется — `undefined`. Не являясь константой, она не является и ключевым словом. Из этого следует, что её значение можно с лёгкостью переопределить. |
| 9 | +Кроме этого, в языке определена глобальная переменная со значением `undefined`, причём эта переменная так и называется — `undefined`. Не являясь константой, она не является и ключевым словом. Из этого следует, что её значение можно с лёгкостью переопределить. |
10 | 10 |
|
11 |
| -> **ES5 Замечание:** в ECMAScript 5 переменная `undefined` **больше не** *доступна на запись* в strict-режиме, однако она всё так же может быть перегружена по имени, например - функцией с именем `undefined`. |
| 11 | +> **ES5 Замечание:** в ECMAScript 5 переменная `undefined` **уже не** *доступна на запись* в strict-режиме, однако она всё так же может быть перегружена по имени, например - функцией с именем `undefined`. |
12 | 12 |
|
13 |
| -Несколько случаев, когда возвращается `undefined`: |
| 13 | +Список случаев, когда код возвращает значение `undefined`: |
14 | 14 |
|
15 |
| - - При попытке доступа к глобальной переменной `undefined` (если она не изменена). |
| 15 | + - При попытке доступа к глобальной переменной `undefined` (если она не была переопределена). |
| 16 | + - При попытке доступа к переменной, которая *ещё не была* инициализирована каким-либо значением. |
16 | 17 | - Неявный возврат из функции при отсутствии в ней оператора `return`.
|
17 |
| - - Из операторов `return`, которые ничего не возвращают. |
| 18 | + - Из операторов `return`, которые не возвращают явных значений. |
18 | 19 | - В результате поиска несуществующего свойства у объекта (и доступа к нему).
|
19 |
| - - Параметры, которые не были переданы в функцию явно. |
| 20 | + - При доступе к аргументам функции, которые явно не были в неё переданы. |
20 | 21 | - При доступе ко всему, чьим значением является `undefined`.
|
| 22 | + - В результате вычисления любого выражения в форме `void(выражение)`. |
21 | 23 |
|
22 | 24 | ### Обработка изменений значения `undefined`
|
23 | 25 |
|
|
0 commit comments