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

相关推荐
菜鸟谢5 小时前
Rust 智能指针完整详解
后端
GuWenyue5 小时前
排序效率低?5分钟吃透快速排序,性能飙升至O(nlogn)
前端·javascript·面试
菜鸟谢5 小时前
Rust 函数完整知识点详解
后端
爱勇宝5 小时前
淡泊名利之前,先承认我们都很焦虑
前端·后端·程序员
菜鸟谢5 小时前
Rust 闭包(Closure)完整详解
后端
ServBay5 小时前
如何利用本地技术栈构建 0 成本 AI SaaS 雏形
后端·aigc·ai编程
菜鸟谢5 小时前
Rust 集合 + 迭代器完整详解
后端
杨利杰YJlio5 小时前
Codex桌面客户端上手:项目、插件与自动化实战
前端·后端
ricardo19735 小时前
React 渲染优化:memo / useMemo / useCallback 的正确姿势与并发模式实战
前端·面试
常铭5 小时前
【Java基础】01-HashMap的底层原理
后端·面试