Найти тему

Значение undefined в JavaScript

После значения null пришло время рассказать ещё об одном особом значении, иногда применяемом в JavaScript. Это значение undefined. Оно возвращается в одном из следующих случаев:

  • При обращении к переменной, которая была объявлена, но не инициализирована (ей не было присвоено никакое значение)
  • При обращении к свойству объекта, которое не существует

Забавно, что несмотря на то, что undefined - это не то же самое, что null, но вот этот код:

var x;
x == null; //true

говорит о том, что undefined таки равно null. То есть для оператора эквивалентности нет разницы между undefined и null. Хотя если вы сделаете вот так:

var x;
alert('x = ' + x + '\n' +
'(x == null) - это ' + (x == null));

то окажется, что х всё таки равен undefined:

Однако оператор идентичности всё расставляет на свои места, и

x === null; //false

уже вернёт false. Да, JavaScript - он такой. Забавный )))

Значение же выражения x == null возвращает true либо если в переменную было явно записано значение null, либо если она пустая (не инициализирована, то есть равна undefined).

В отличие от null, значение undefined не является зарезервированным словом JavaScript. Стандарт указывает, что всегда существует глобальная переменная undefined, начальным значением которой является undefined. То есть вы можете сделать, например, так:

undefined = 0;

это не будет ошибкой. Правда, при этом ничего не изменится (во всяком случае мои эксперименты не привели к тому, что после изменения значения undefined неинициализированные переменные стали содержать что-то другое).

Когда значение undefined используется в логическом контексте, оно преобразуется в значение false. В числовом контексте – в значение NaN, а в строковом – в строку "undefined".

На этом всё. Подписывайтесь на канал, чтобы ничего не пропустить.

Наука
7 млн интересуются