undefined и null В JavaScript есть два отдельных типа для представления ничего. Тип undefined Это тип с единственным возможным значением: undefined. Кроме этого, в языке определена глобальная переменная со значением undefined, и эта переменная так и называется — undefined. Не являясь константой, она не является и ключевым словом. Из этого следует, что её значение можно с лёгкостью переопределить. Несколько случаев, когда возвращается undefined: - При попытке доступа к глобальной переменной undefined (если она не изменена). - Неявный возврат из функции при отсутствии в ней оператора return. - Из операторов return, которые ничего не возвращают. - В результате поиска несуществующего свойства у объекта (и доступа к нему). - Параметры, которые не были переданы в функцию явно. - При доступе ко всему, чьим значением является undefined. Обработка изменений значения undefined Поскольку глобальная переменная undefined содержит копию настоящего значения undefined, присвоение этой переменной нового значения не изменяет значения типа undefined. Но при этом, чтобы сравнить что-либо со значением undefined, прежде нужно получить значение самой переменной undefined. Чтобы защитить код от переопределения переменной undefined, часто используется техника анонимной обёртки, которая использует отсутствующий аргумент. var undefined = 123; (function(something, foo, undefined) { // в локальной области видимости `undefined` // снова ссылается на правильное значене. })('Hello World', 42); Другой способ достичь того же эффекта — использовать определение внутри обёртки. var undefined = 123; (function(something, foo) { var undefined; ... })('Hello World', 42); Единственная разница между этими вариантами в том, что последняя версия будет больше на 4 байта при минификации, а в первом случае внутри анонимной обёртки нет дополнительного оператора var. Использование null Значение null записывается литералом null. Оно является самостоятельным, а не свойством глобального объекта (как undefined). В API, null часто присутствует в местах где ожидается объект, но подходящего объекта нет. null является определённым значением отсутствия объекта, тогда как undefined обозначает неопределённость. Например: var element; // значение переменной element до её инициализации не определённо: undefined element = document.getElementById("not-exists"); // здесь при попытке получения несуществующего элемента, метод getElementById возвращает null // переменная element теперь инициализирована значением null, её значение определено Дока про undefined Дока про null
undefined в JavaScript - это примитивное значение, указывающее на отсутствие присвоенного значения переменной или отсутствие определения значения. Это часто используется для обозначения того, что переменная существует, но ей не было присвоено конкретное значение. Например, если объявить переменную без присвоения ей значения: var x;
console.log(x); // Выведет: undefined Здесь переменная x существует, но не имеет явного значения, поэтому в консоли будет выведено undefined. Также, когда функция не...