Прежде чем мы перейдем к null и undefined, мы должны изучить две концепции: примитивные значения javascript и ложные значения. Они помогут нам понять значение null и undefined, поскольку null
и undefined
являются примитивными значениями JavaScript и обрабатываются как ложные (не ложные) для логических операций («И», «ИЛИ» и «НЕ»).
примитивные значения
JavaScript устанавливает значение для одного из шести примитивных типов данных:
- Undefined (переменная без определенного значения)
- Null (одно нулевое значение)
- Логическое значение (истина или ложь)
- Число (включая
Infinity
иNaN
— не число!) - Строка (текстовые данные)
- Символ (уникальный и неизменяемый примитив, новый для ES6/2015)
Ложные значения
false
0
(ноль)''
или""
(пустая строка)null
undefined
NaN
нулевой
null означает «нет значения».
«Нулевое значение означает преднамеренное отсутствие какого-либо значения объекта.»
let a = null console.log(a)//null null == false //false console.log(!null) // true
неопределенный
Переменная, которая была объявлена, но ей не присвоено значение или свойство объекта не существует, вернет значение undefined.
let b console.log(b) //undefined let Amy = {gender: "female"} console.log(Amy.age) // undefined
Функция возвращает неопределенное значение, если значение не было возвращено.
function test1(){ let a = 1 console.log(a) //1 } console.log(test1())//undefined function test2(){ let a = 1 console.log(a) //1 return a } console.log(test2())//1
Наконец, null
и undefined
оба ложны, они свободно равны друг другу:
null == undefined //true null !== undefined //true
ресурсы: