{"id":4098,"url":"\/distributions\/4098\/click?bit=1&hash=4a2746815553d402e055c9b00a2035b35e47c0edcda5fd7253d5e57f885e8ecc","title":"\u0410\u0444\u0435\u0440\u0438\u0441\u0442\u043a\u0430, \u0440\u0435\u0431\u0451\u043d\u043e\u043a \u0438 \u043f\u0430\u043d\u043a \u2014 \u0447\u0442\u043e \u043e\u0434\u0435\u0436\u0434\u0430 \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u043e \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0430\u0445?","buttonText":"\u0423\u0437\u043d\u0430\u0442\u044c","imageUuid":"e6048338-fd6d-53fa-aaf4-387384748bf7"}

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 где я выкладываю контент каждый день.

0
10 комментариев
Написать комментарий...
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Vladimir Shaitan
Автор

Какой маркап есть таким и пользуемся )

Ответить
Развернуть ветку
Последний натурал

Зачем это здесь?

Это же полный [object Object]!

Ответить
Развернуть ветку
Vladimir Shaitan
Автор

Так сложилось исторически )

Ответить
Развернуть ветку
Tomas Tomson

Force Unwrap Error. Found nil.

Ответить
Развернуть ветку
PAceVi

Зачем на DTF css и js не связанные с играми? Есть же хабр

Ответить
Развернуть ветку
Vladimir Shaitan
Автор

Без этого и игру не получится создать )

Ответить
Развернуть ветку
PAceVi

Есть же божественный C#. Ну или тогда нативный C++ давай сразу про работу указателей)

Ответить
Развернуть ветку
Саша Рыгоравич

я сюда диградировать пришел а не учить жс!1

Ответить
Развернуть ветку
Vladimir Shaitan
Автор

А все, уже поздно, дегродить не получится )

Ответить
Развернуть ветку
3 комментария
Раскрывать всегда
null