详解undefined和null的区别

Begin

在 JavaScript 中, undefined 并且 null 彼此非常不同。但是,只有一些相似之处可能会使该语言的初学者感到困惑。本文旨在通过示例解释它们的相似之处、不同之处和用法。希望你觉得它有用。

Undefined

undefined 通常表示变量已声明,但尚未赋值。

在上面的示例中,我们声明了一个变量 author ,但尚未为其赋值。因此变量 author 是 undefined 。

还有一种方法可以确认:

当您访问不存在的对象属性时,您会得到一个 undefined .

Null

null 是赋值。作为程序员,您可能希望将值 null 分配给变量。它只是意味着该值为空或不存在。

有趣的是,当我们用来 typeof 检查 null 的类型时,它会返回"object"。

⚠️ 混淆警报:这可能会造成混淆,因为 null 基元值也是如此。这可能是 JavaScript 长期存在的一个问题,我们期待更好的推理。

相似之处

它们都是原始值。JavaScript 有 7 个基本元素,

JavaScript 中的所有其他值都是对象(是的,包括函数和数组)。

有它们都是falsey values。

falsy(falsey)值是在布尔上下文中遇到时会被视为false的值。

在 JavaScript 中,有 6 个虚假值,包括 undefined 和 null

js 复制代码
1.  false 
2.  0
3.  ""(empty string)""(空字符串)
4.  NaN
5.  undefined 
6.  null 

差异

除了上面提到的相似之处外, undefined null 彼此之间相距甚远。他们严格来说是不平等的。

⚠️ 混淆警报:但是,它们大致相等。松散相等是使用 == 运算符执行的,该运算符在将两个值转换为公共类型后进行比较。你应该尽量避免它。

请记住, undefined 表示没有为声明的变量分配任何值。然而, null 本身是一个可以分配给变量的值,并表示 null 一个空/空值。

如何区分Null and Undefined

使用严格相等运算符 ( === ) 检查变量是否为 undefined 值或是否具有 null 值

同样,对于 null 。

由于两者都 undefined null 是虚假值,因此您也可以这样做。它将匹配 undefined 和 null。

备忘单

总而言之

  • undefined 和 null 是原始值,它们表示虚假值。undefined 和 null 之间的所有相似之处都到此为止。

  • undefined value 通常由 JavaScript 引擎在声明变量但未分配任何值时设置。

  • null 值通常由程序员在想要分配空/空白值时设置。

  • undefined 和 null 严格不相等(!==)。

  • 如果尝试访问甚至未声明的变量的值,则会导致 ReferenceError。

相关推荐
盛夏绽放4 分钟前
Hermes Agent 全栈安装、配置与Web端架构深度解析(官方命令版·最终优化)
前端·架构·hermes
早期的虫儿有鸟吃5 分钟前
Vue3
前端·javascript·vue.js
hqk16 分钟前
我给 AI 造了一个原型工具:AIWireframeViewer V1
前端·ai编程·vibecoding
Highcharts.js24 分钟前
商业授权与开源图表库如何选择?
前端·javascript·开源·highcharts·chart.js·echarts.js
工具派34 分钟前
写代码时,我把这个本地 AI Commit Message 生成器接进了工作流
前端·后端
一缕清烟在人间1 小时前
鸿蒙应用开发实战【27】— DatabaseService 数据库初始化
javascript·数据库·harmonyos·鸿蒙系统
LaughingZhu1 小时前
Product Hunt 每日热榜 | 2026-07-15
前端·人工智能·神经网络·react.js·搜索引擎·前端框架
研☆香1 小时前
JavaScript 绘制简单不规则图形:三角形与五角星实战教程
开发语言·javascript·ecmascript
想要成为糕糕手1 小时前
NO.48 旋转图像 —— LeetCode 热题 100 面试导向深度解析
javascript·算法·面试
掘金者阿豪1 小时前
从Oracle迁到金仓,第一个月踩的最大的坑就是它
前端·后端