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 的方式有时候会有所不同,因此了解它们之间的区别是很重要的。

相关推荐
用户57246709889561 分钟前
🔍 fzf:终端模糊查找神器,效率提升利器!🚀
后端
Jing_Rainbow3 分钟前
【AI-5 全栈-1 /Lesson9(2025-10-29)】构建一个现代前端 AI 图标生成器:从零到完整实现 (含 AIGC 与后端工程详解)🧠
前端·后端
飞哥的AI笔记5 分钟前
Instant模式和Thinking模式的技术差异是什么?分别适用什么场景?
面试·ai编程
T___T16 分钟前
深入浅出:JavaScript 字符串反转的 6 种解法与面试技巧
javascript·面试
追风少年浪子彦28 分钟前
Spring Boot 使用自定义 JsonDeserializer 同时支持多种日期格式
java·spring boot·后端
bcbnb29 分钟前
Charles抓包在复杂系统中的应用,高难度问题的诊断与验证方法
后端
tan180°34 分钟前
Linux网络IP(下)(16)
linux·网络·后端·tcp/ip
非优秀程序员41 分钟前
教程:如何修改 Docker 容器 bisheng-frontend 中的静态文件
后端
我叫黑大帅1 小时前
六边形架构?小白也能秒懂的「抗造代码秘诀」
java·后端·架构
kevinzeng1 小时前
结合Condition实现生产者与消费者示例,来进一步分析AbstractQueuedSynchronizer的内部工作机制
后端