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

相关推荐
认真的小羽❅1 分钟前
从入门到精通:Spring Boot 整合 MyBatis 全攻略
spring boot·后端·mybatis
摆烂工程师17 分钟前
教你如何查询 Codex 最新额度是多少,以及 ChatGPT Pro、Plus、Business 最新额度变化
前端·后端·ai编程
任聪聪28 分钟前
我做了一款通用本地化部署模型运行调度器,运行所有大模型!
后端
开发者如是说38 分钟前
可能是最好用的多语言管理工具
android·前端·后端
蓝色的杯子2 小时前
Python面试30分钟突击掌握-LeetCode1-Array
开发语言·python·面试
不爱吃炸鸡柳2 小时前
6道经典算法题详解:从排序到链表,覆盖面试高频考点
算法·链表·面试
何陋轩2 小时前
AI时代,程序员何去何从?别慌,看完这篇你就明白了
后端·面试
keqistarry2 小时前
java-python快速转语言
面试
weixin_408099672 小时前
OCR 识别率提升实战:模糊 / 倾斜 / 反光图片全套优化方案(附 Python / Java / PHP 代码)
图像处理·人工智能·后端·python·ocr·api·抠图
weixin_408099672 小时前
【实战教程】懒人精灵如何实现 OCR 文字识别?接口调用完整指南(附可运行示例)
java·前端·人工智能·后端·ocr·api·懒人精灵