На первый взгляд JavaScript кажется достаточно простым, но когда вы начнете писать код, вы обнаружите странные ошибки, которых не понимали на начальном этапе работы с JavaScript. Одна из странностей, которую вы обнаружите, заключается в том, что переменная или метод не определены.

Uncaught TypeError: невозможно прочитать свойство get of undefined
в ‹anonymous›: 1: 3

Итак, что такое undefined?

Undefined - это примитивное значение, используемое, когда переменной не присвоено значение.

Проще говоря, когда вы создаете переменную и оставляете ее без присвоения ей значения, JavaScript автоматически присваивает значение undefined.

var x; //undefined

На этом этапе ваша переменная создается движком JavaScript, но вам не присваивается никакого значения. Когда вы попытаетесь ее записать в консольный журнал, она выдаст undefined.

console.log(x) // undefined

undefined - это примитивный тип в JavaScript. Если вы попытаетесь увидеть тип переменной с undefined, вы получите undefined.

typeof x; // 'undefined'

Это все, что касается undefined в JavaScript, но некоторые люди могут подумать, что «undefined похоже на null в других языках программирования». Что ж, это не так в случае с JavaScript. JavaScript имеет нулевой тип, но это объект typeof. Поэтому, когда вы присваиваете значение null переменной, JavaScript не выдаст неопределенной ошибки.

var y = null;
typeof y;
//"object"
(null === undefined) // false

Кстати, JavaScript выдаст вам неопределенную ошибку при попытке доступа к переменной, которую вы не объявили.

console.log(notdefined);
Uncaught ReferenceError: notdefined is not defined
    at <anonymous>:1:1