null 和 undefined 的区别

  • null 是被赋值的,表示啥都没有
  • undefined 通常是一个变量已经被声明,但是没有赋值
  • null 和 undefined 都是否定值
  • null 和 undefined 都是原始值
  • typeofnull=object
  • null!==undefined 但是 null==undefined

1. null

  • null 是空或者不存在的值
  • null 一定是被赋值的 像这样,我们给变量 a 赋值 null
let a = null;

console.log(a);
// null

2. undefined

undefined 通常是一个变量已经被声明,但是没有赋值,例如:

let b;

console.log(b);
// undefined

也可以给变量直接赋值为 undefined

let c = undefined;

console.log(c);
// undefined

从一个 object 里读取一个不存在的属性就返回 undefined:

var d = {};

console.log(d.fake);
// undefined

3. 相同点

1. 都属于JavaScript的否定值;

JavaScript 有6个否定值

  • false
  • 0(zero)
  • ""(empty string)
  • null
  • undefined
  • NaN(Not A Number)

2. 都属于JavaScript的原始值;

JavaScript 有 6 个原始值:

  • Boolean
  • Null
  • Undefined
  • Number
  • String
  • Symbol

4.不同点

 1. undefined 是不会覆盖默认值的

let sayHi = (str = 'hi') => {
  console.log(str);
}

 创建了一个函数叫 sayHi,有一个参数,且设置默认值为 hi,调用是这样:

sayHi();
// hi

我们也可以传个参数覆盖默认值:

sayHi('bye');
// bye

 但是! undefined 是不会覆盖默认值的,而 null 则会。

sayHi(undefined);
// hi

sayHi(null);
// null

5. null !== undefined

 null 是严格不等于 undefined 的

null !== undefined

但是,用不严格比较符的时候 null 是等于 undefined 的。

null == undefined

在 JavaScript 里,双等号判断相等时会进行隐式类型转换,所以是不严格的。

6. 注意点

typeof 测试 null,会返回 object。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值