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 小时前
微服务治理的“四大护法”:从 Django 视角理解 Spring Cloud 核心组件
后端
再吃一根胡萝卜1 小时前
面试终极挑战:如何用 Django 经验,回答 Java 微服务实战问题?
后端
To_OC2 小时前
装完 ESLint 它一声不吭?我还以为代码写得多好
后端·node.js·eslint
凤山老林3 小时前
精细化流量治理:Spring Boot 动态特性开关与灰度发布体系
java·spring boot·后端
vipbic3 小时前
一个前端的 9 天重构:我是怎么用 Codex 重做航栈的
前端·javascript·后端
用户938515635074 小时前
TypeScript 高级类型 + CSS 三列布局:从类型体操到样式工程的进阶之路
css·面试·typescript
考虑考虑6 小时前
Excel导入时产生特殊字符处理
java·后端·java ee
Scabbards_6 小时前
面试Leetcode - Heap 堆
java·leetcode·面试
IT_陈寒7 小时前
Redis的DEL命令竟然没删掉数据?我踩的这个坑你得知道
前端·人工智能·后端
黄敬峰7 小时前
🐳 Docker 从入门到实战:一次搞定容器化 + Nginx 反向代理
面试