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

相关推荐
自珍JAVA3 小时前
访问者模式:让你的代码优雅地“拜访”对象结构
后端
不知名的忻5 小时前
B 树与 B+ 树:面试完全指南
b树·算法·面试·b+树
毅航5 小时前
AI 浪潮下,会用工具不等于具备能力
后端·程序员·ai编程
比特森林探险记6 小时前
go 语言中的context 解读和用法
开发语言·后端·golang
刀法如飞6 小时前
《道德经》简单解说版-第 2 章:天下皆知美之为美
前端·后端·面试
Raink老师6 小时前
【AI面试临阵磨枪-59】企业内部 AI 系统权限、数据隔离、审计设计
人工智能·面试·职场和发展
枕星而眠7 小时前
Linux 线程:原理、属性、实战与面试避坑
linux·运维·c语言·面试
罗超驿7 小时前
22.深入剖析JDBC架构:从原生API到企业级数据交互核心
java·数据库·mysql·面试
Raink老师7 小时前
【AI面试临阵磨枪-60】微服务下 AI 能力如何封装、网关、限流、监控
人工智能·微服务·面试
小茴香3537 小时前
HTTP缓存
网络协议·http·缓存·面试