undefined 和 unll 的区别

226 阅读1分钟
  • 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以明确意图