null与undefined的区别
undefined
原始值的初始,即未定义(undefined表示 “缺少值”,就是此处应该有一个值,但是还没有定义)
经常出现的场景
//1.已声明未赋值的变量
let str ;
console.log(str)//undefined
//2.获取对象不存在的属性
let str = {};
console.log(str.name)//undefined
//3.函数没有返回值
function func (){}
console.log(func())//undefined
//4.函数实参没有传入,获取形参
function func (name){
console.log(name)
}
func()//undefined
变量类型与转换类型
typeof undefined //undefined
Boolean(undefined) //false
String(undefined)//undefined
Number(undefined)//NaN
null
对象的初始值,即空对象的引用(表示一个对象被定义了,值为“空值”)
变量类型与转换类型
typeof null //object
Boolean(null)//false
String(null)//null
Number(null)//0
鉴别undefined与null
console.log(null == undefined) //true
console.log(null === undefined) //false