JS中undefined和null的区别

在 JavaScript 中,nullundefined 都是用来表示缺少值的,但它们之间有一些关键的区别:

  1. undefined

    • 在 JavaScript 中,undefined 表示声明了但未赋值的变量,或者访问对象属性时不存在的属性。
    • 未初始化的变量默认具有 undefined 值。
    • 作为函数参数的默认值时,如果调用函数时未传递该参数,则该参数的值为 undefined
    • undefined 是一个原始值,而不是关键字。
  2. null

    • null 是一个表示空值或者不存在的对象。
    • 当你想明确地表示一个变量应该是空的时候,可以将其赋值为 null
    • 在 JavaScript 中,null 是一个特殊的对象值。它表示一个空对象引用。

总结一下:

  • undefined 表示一个变量已经声明了但是尚未被赋值,或者在对象中寻找一个不存在的属性时返回的值。
  • null 表示一个变量被赋值为空对象,它是 JavaScript 中的一个特殊对象。

举个例子:

javascript 复制代码
let foo; // 声明一个变量但未赋值,默认为 undefined
console.log(foo); // 输出 undefined

let obj = { bar: null }; // 声明一个对象,其中的属性 bar 被赋值为 null
console.log(obj.bar); // 输出 null
console.log(obj.baz); // 输出 undefined,因为 baz 属性并不存在于对象中

在 JavaScript 中,处理 undefinednull 的方式有时候会有所不同,因此了解它们之间的区别是很重要的。

相关推荐
我叫黑大帅3 分钟前
PHP 中处理图像的利器 GD库
后端·面试·php
Roselind_Yi4 分钟前
【吴恩达2026 Agentic AI】面试向+项目实战(含面试题+项目案例)-4
人工智能·面试·职场和发展·实时互动·跳槽·社交电子·学习方法
左右用AI5 分钟前
每周1亿次下载的axios被投毒了,但是源码里没有一行恶意代码!
前端·后端
前端摸鱼匠5 分钟前
【AI大模型春招面试题15】自回归(Autoregressive)与自编码(Autoencoding)语言模型的区别?
人工智能·语言模型·面试·回归·大模型·求职招聘
SimonKing5 分钟前
IDEA 2026.1重磅发布:AI智能体全面开放,编程进入“万能插座”时代
java·后端·程序员
星浩AI5 分钟前
刚刚,Claude Code 的源码泄露了
后端·github·ai编程
元俭6 分钟前
【Eino 框架入门】Callback 可观测性:给 Agent 装个"监控摄像头"
后端
我叫黑大帅8 分钟前
如何使用PHP创建图像验证码
后端·面试·php
何中应9 分钟前
Wiki搭建
后端·开源软件·wiki
AI茶水间管理员12 分钟前
手动执行 Claude 压缩上下文后,到底保留了什么?(附Vibe Coding 案例)
人工智能·后端