В чем разница между null и undefined?

Ответ:
В JavaScript undefined означает, что переменная была объявлена, но ей еще не присвоено значение, например:

let a;
alert(a); //выведет undefined
alert(typeof a); //выведет undefined

null – это значение присваивания. Он может быть присвоен переменной, как представление без значения (когда разработчик решает, что значение пока что не определено):

let a = null; //разработчик сам присвоил null
alert(a); //выведет null
alert(typeof a); //выведет object

? Из предыдущих примеров ясно, что undefined и null являются двумя различными типами: undefined – это сам тип (неопределенный), а null – объект.

null === undefined // false
null == undefined // true
null === null // true