Javascript обрабатывает значения, которые не существуют или не должны существовать, с помощью ключевых слов undefined, not defined & null. Они могут показаться похожими, но между ними есть тонкие различия.
Неопределенный
В JS undefined
присваивается любой переменной, которая была объявлена, но еще не назначена.
Существует множество причин, по которым мы получаем undefined. Вот несколько из них:
Подъем
Все переменные, объявленные с помощью var
, поднимаются в js. Поэтому мы можем обращаться к ним даже до объявления, но они будут возвращать undefined
.
Более подробную информацию о подъеме можно найти здесь
Когда переменная объявлена, но к ней обращаются до ее инициализации
var count;
console.log(count); //undefined
Когда назначается метод без возвращаемого значения.
function print(a){
console.log(a);
}
var str=print("Hello");
console.log("Value of str: "+str);
/*
Output:
Hello
Value of str: undefined
*/
Не определена
Ошибка not defined
возникает, когда переменная вообще не объявлена.
console.log(a);
console.log(b);
var a=10;
let b=100;
/*
Output:
undefined
Uncaught ReferenceError: b is not defined
*/
Примечание: Опять для переменной a
мы получили undefined, а не ошибку из-за поднятия.
null
null
— это объект, который можно использовать для явного обозначения пустого значения.
Разница между null
и undefined
заключается в том, что null — это объект, в то время как тип undefined
сам по себе является неопределенным.