null和undefined区别
- null表示该变量缺少对象指向
- undefined表示尚未初始化的变量值
1 在typeof中的结果
js中值以32位存储,前3位表示数据类型标识,对于所有对象前三位为000,null以32个0表示
typeof null // object
typeof undefined // undefined
2 在Object.prototype.toString.call
Object.prototype.toString.call(null) // '[object Null]'
Object.prototype.toString.call(undefined) // '[object Undefined]'
3 == 与 ===
null == undefined // true
null === undefined // false
!!null === !!undefined // true
4 +运算和Number()
let a = undefined + 1 // NaN
let b = null + 1 // 1
Number(undefined) // NaN
Number(null) // 0
5 json
JSON.stringify({a: undefined}) // {}
JSON.stringify({a: null}) // '{a: null}'