- undefined: 申明了变量,但未设置值或者值就是undefined
- null: 变量是空值,对象的初始值,最顶层对象
- undeclared: 变量从未出现在代码中,和undefined不同
运算符:
- 空值合并运算符 ??
- 作用:只判断左边内容是否是undefined和unll
- 功能:
a ?? b // 等同于 a !== undefined && a !== null ? a : b - 或运算符 ||
- 作用:判断左边内容是undefined / null / 0 / '' / NaN
typeof类型判断
typeof null // 'object'
typeof undefined // 'undefined'
相等运算
undefined == null // true
undefined === null // false
JSON序列化
// undefined会被跳过忽略掉
const a = {
a: undefined,
b: null,
c: 0
}
JSON.stringify(a) // '{"b":null,"c":0}'
实际应用建议:
- 用null表示预期的空值(初始化变量时)
- 用undefined表示未定义/缺失的值(为传递的函数参数)
- 避免手动赋值undefined,优先使用null以明确意图