Разница между null и неназначенным значением объекта (undefined) заключается в том, что null обозначает намеренное отсутствие значения объекта, а undefined — что переменной (не объекту) ещё не присвоено значение. 3
Null всегда явно задаётся программистом и означает, что переменная пустая, при этом компьютер точно знает, как с ней можно работать. 5 Undefined задаётся по умолчанию при объявлении переменной, когда ещё не задано ей какое-то значение. 4
Таким образом, null показывает, что получен какой-то результат, пусть и пустой, а undefined — что пока нет никакого результата. 1
Например, null может использоваться, когда ожидается объект, но по каким-то причинам функция его вернуть не может, а undefined — если функция должна вернуть, например, число, но не может этого сделать. 3