undefined и null в JavaScript
Привет, в этом уроке мы подробно поговорим о типах данных undefined и null в JavaScript, рассмотрим то как они работают где их применять и как отвечать на каверзные вопросы на собеседовании связанные с этими типами данных. Текстовое описание в полной версии поста.
Undefined
undefined - примитивный тип данных который присваивается переменным как только они были объявлены.Также присваивается аргументам функции которые не были переданы и возвращается из функций внутри которых отсутствует 'return value' или присутствует 'return' без значения.
Не может вернуться и функции которая вызвана через оператор 'new'.
А также мы можем задать это значение явно. Также мы можем получить его и в других случаях, обычно когда значение не определено.
let exampleUndefined_1;
console.log('empty variable', exampleUndefined_1);
function exampleUndefined_2(a, b) {
console.log('func arguments', a, b);
}
exampleUndefined_2();
function exampleUndefined_3() {
return;
}
console.log(
'Empty return value',
exampleUndefined_3()
)
function exampleUndefined_4() {
let a = 2 + 2;
}
console.log(
'No return value',
exampleUndefined_4()
)
Нужно стараться избегать значения undefined, до того момента пока алгоритм решения вашей задачи не потребует обратного.
Для того чтобы избежать undefined есть несколько способов. Самым простым из них является инициализация переменной сразу со значением, а также использование let и const вместо var
let foo = 10; // Good
let bar; // Bad
bar = 10;
var baz = 10; // Bad
Null
null - примитивный тип данных, обычно представляет собой отсутствие какого либо значения в объекте.
Об объектах поговорим позднее. Для того чтобы создать null, мы можем присвоить значение null в переменную или свойству объекта.
let nullExample_1 = null;
// Фигурные скобки используются для создания объекта.
let nullInObjectExample = {
firstName: null,
lastName: null,
age: 10
};
Отличие null от undefined
null является определенным значением отсутствия объекта или отсутствия значения для которого внутри объекта определен ключ.
undefined обозначает неопределенность, а именно то что контейнер был создан но его значение не определили или свойство не было определено вовсе.
Баг оператора typeof
Если мы используем typeof для проверки тип данных null мы получи object
console.log(
typeof null
)
Для проверки того что значение действительно null, делаем так:
const anotherNullVariable = null;
console.log(
anotherNullVariable === null
)
Файлы с урока
undefined - link
null - link
P.S. Не забудь подписаться на мой youtube канал и на канал в telegram где я выкладываю контент каждый день.