null和undefined的区别,这里给你讲清楚。

null和undefined有很多小伙伴分不清,null是空,有容乃大,可以是任何值,undefined是未定义,只能是未定义。

二者的区分

null和undefined都是js中的特殊值,表示缺失或未定义的值。

null表示一个空对象指针,即该变量本应该指向一个对象,但是现在没有指向任何一个对象。例如:

var obj = null;

undefined表示一个未定义的值,即该变量没有被赋值或者被赋值为undefined。例如:

var x;
console.log(x); // undefined

在条件判断中,null和undefined都会被转换为false,但是在其他方面,它们有一些不同的行为。

例如,对于对象属性的访问,如果该属性不存在,返回的是undefined,而不是null:

var obj = {a: 1};
console.log(obj.b); // undefined

另外,null可以被赋值给任何类型的变量,而undefined只能被赋值给undefined类型的变量:

var x = null;
console.log(x); // null

var y;
y = undefined;
console.log(y); // undefined

具体场景用法

  1. null的使用场景:
  • 初始化一个变量,表示该变量目前没有任何值。
  • 作为函数的参数,表示该函数的参数不需要传递任何值。
  • 作为对象的属性值,表示该属性目前没有任何值。

例如:

var x = null; // 初始化变量
function foo(param) {
  if (param === null) {
    console.log("param is null");
  }
}
foo(null); // 作为函数参数
var obj = {a: null}; // 作为对象属性值
  1. undefined的使用场景:
  • 变量声明但未初始化时,变量的默认值就是undefined。
  • 对象属性不存在时,访问该属性返回的值就是undefined。
  • 函数没有返回值时,返回值默认就是undefined。

例如:

var x; // 声明但未初始化
console.log(x); // undefined
var obj = {a: 1};
console.log(obj.b); // 访问不存在的属性
function foo() {
  // 没有返回值
}
console.log(foo()); // 函数没有返回值

需要注意的是,null和undefined都可以表示缺失或未定义的值,但是在具体使用时,需要根据场景选择使用哪种类型的值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

贝格前端工场

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值