null和undefined的区别

区别一:是两种不同的数据类型

console.log(typeof undefined); //undefined

console.log(typeof null); //object

区别二:含义不同

null可以代表空对象,看作一个空对象指针;

而undefined则表示空值

区别三:使用场景不同

null的使用场景:

  • 手动设置
  • DOM元素获取时没有获取到指定的元素对象,结果为null。
  • 正则捕获时没有捕获到指定结果,返回null。
  • Object.prototype._proto_的值为null,即对象原型链的终点。
  • 定义一个变量,若要当作对象来使用,初始化为null。

undefined的使用场景:

  • 若变量只声明未初始化,则变量的值为undefined。
  • 对象上不存在的属性,则属性值为undefined。
  • 函数形参不传值,则参数值为undefined。
  • 函数无显式返回值,则返回undefined。
  • 数组中寻找某一项没有找到,则返回undefined。
  • JS严格模式下,this指undefined。
  • 使用void对表达式求值,结果为undefined。

区别四:用法不同

进行数值转换时,null可以转为0来使用,而undefined则会转为NaN。举一个栗子:

console.log(null + 1); //1

console.log(undefined + 1); //NaN

//转数字
console.log(Number(null)); // 0
console.log(Number(undefined));//NaN

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值