You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中undefined数据类型是否仅拥有一个值?

Undefined 数据类型和 Null 类型一样,有且仅有一个值,就是原始值undefined。

你看到的文档段落只是在描述undefined的触发场景,不是在定义该类型的取值范围。不管是哪种场景下拿到的undefined,本质都是同一个全局唯一的原始值:

  • 声明后未初始化赋值的变量,存储的是这个值
  • 访问对象不存在的属性、数组不存在的索引时,返回的是这个值
  • 未显式写return语句的函数,默认返回的是这个值
  • 函数调用时未传入实参的形参,默认绑定的是这个值
  • 使用void运算符(比如常见的void 0),运算结果永远是这个值

你可以用严格相等运算符做简单验证:

let uninitVar;
const noProp = {}.notExist;
const noReturn = (() => {})();
const voidRes = void 0;

console.log(uninitVar === noProp); // true
console.log(noProp === noReturn); // true
console.log(noReturn === voidRes); // true

注意一个常见误区:ES5之前undefined不是JavaScript保留字,你可以在局部作用域声明一个名为undefined的自定义变量,但这只是作用域内的标识符重名,不会修改Undefined类型的唯一原始值,未赋值的变量拿到的永远是原始的undefined,和你局部声明的同名变量没有关系。

内容的提问来源于stack exchange,提问作者user247763

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 23:30:52