Давайте сначала поговорим о сходствах.
ноль и неопределенный являются примитивными типами JavaScript.
Значение не определено состоит в том, чтобы сказать, что переменная объявлена, но ей не присвоено значение.
let age //age is undefined
let age = null //age is null
Примечание: доступ к переменной, которая не была объявлена, вызовет ошибку ReferenceError: <переменная> не определена , но это не значит, что она не определена .
Как вы проверяете, является ли переменная нулевой? Используйте оператор сравнения, например возраст
То же самое для неопределенного: возраста
В обоих случаях вы можете проверить наличие:
if (!age) {
}и это будет соответствовать как нулю , так и неопределенному .
Вы также можете использовать оператор typeof :
let age typeof age //'undefined'
хотя null оценивается как объект, даже если он является примитивным типом:
let age = null typeof age //'object'
Оригинал: “https://flaviocopes.com/javascript-difference-null-undefined/”