null和undefined的区别

本文深入探讨了JavaScript中Undefined和Null两种数据类型的特点及区别,解析了它们的使用场景和如何通过typeof操作符进行检测。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


曾看到过这么一道测试题:

null == undefined  //true

null竟然与undefined相等,感觉上null和undefined都是代表空值的数据,那么它们到底有什么区别呢?
在JavaScript中,五种基本数据类型分别是:Number、String、Boolean、Undefined、Null,其中,Undefined和Null是只有一个值的数据类型,分别是:undefined、null。

Undefined类型

该类型只有一个值:undefined。什么情况下会给一个变量赋予undefined这个值呢?

  • 当声明一个变量,但未给其赋值时
    这里写图片描述

  • 当一个函数没有return或者return后啥也没有返回的,默认返回undefined

  • 函数中设置了形参,可是执行时没有传递参数,则此参数为undefined
    这里写图片描述

  • 当访问一个对象中不存在的属性时,返回undefined

typeof是一个用来检测给定变量的数据类型的操作符
typeof undefined会返回undefined,因为undefined是Undefined数据类型的值。
而typeof 一个未声明或者未初始化的变量,也是返回undefined,因为对于未声明的变量,JavaScript会自动给其赋予undefined值,

Null类型

该类型只有一个值:null。
使用typeof 操作符检测null值时,并不是返回"null",而是返回"object",这是因为null值表示一个空对象指针,所以返回的是"object"。
null==undefined 是true,实际上,undefined值是派生自null值的,因此ECMA-262规定对他们的相等性测试要返回true。

  • 当通过DOM中提供的属性或方法获取页面时的标签时,如果标签不存在,返回的是null,而不是undefined
    这里写图片描述
  • 想释放一个堆内存时,将其赋值为null即可
  • 正则匹配时,exec与match,当不匹配时,是返回null

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值