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

相关推荐
LucianaiB1 天前
【邪修 QClaw】女朋友说我说话太直,我直接用QClaw来解决问题!
后端
疯狂的程序猴1 天前
Flutter应用代码混淆完整指南:Android与iOS平台配置详解
后端·ios
gelald1 天前
SpringBoot - 配置加载
spring boot·后端·spring
DyLatte1 天前
当我想把所有角色都做好时,就开始内耗了
前端·后端·程序员
阳火锅1 天前
Element / AntD 官方都没做好的功能,被这个开源小插件搞定了!
前端·vue.js·面试
蓝悦1 天前
用 .bat 一键启动 Jupyter:多环境切换
后端
何陋轩1 天前
Netty高性能网络编程深度解析:把网络框架核心讲透,让面试官刮目相看
后端·面试
落木萧萧8251 天前
为什么我又写了一个 ORM 框架(MyBatisGX)
后端·架构
昵称为空C1 天前
在复杂SpringBoot项目中基于hutool实现临时添加多数据源案例
spring boot·后端
结构化知识课堂1 天前
产品经理面试:产品需求分析10题(政策解读、用户心理研究)含答案
面试·职场和发展·产品经理·需求分析·产品思维