3.7 undefined型
// undefined 型只能够取 undefined 这一个值。 console.log("对undefined值进行typeof运算,其结果为undefined:"); console.log(typeof undefined); // 从代码上来看,undefined 值似乎和 null 值一样都是一种字面量。 // 但实际上,它并非字面量,而是一个预定义的全局变量 console.log("对名称为 undefined 的全局变量进行赋值:"); undefined = '黄子涵' console.log(undefined); console.log("判断undefined的数据类型:"); console.log(typeof undefined);
undefined 值
全局变量 undefined 与 undefined 值的关系其实就是这样的:首先有了 undefined 型的值,之后才将该值赋值给了全局变量 undefined。
null 是一种字面量而 undefined 是一个变量名,这并不是一种偶然。要使一个变量的值为 null,就必须将 null 以字面量的形式赋值给该变量。因此从语言规则的角度来说,null 必须是一种字面量。另一方面,undefined 值最多只能算是某个没有经过显式赋值的变量的初始值。所以根据字面含义,将其称为未定义值或是未初始化值都没有问题。
console.log("只是被声明了的变量:"); var hzh1; console.log("该变量的值为undefined值:"); console.log(typeof hzh1);
也就是说,从语法规则上来看,undefined 这一标识符并不是必需的。这是因为只需将全局变量undefined 赋值给没有被赋值的变量就可以了。null 值指的是没有引用任何对象的状态,尽管从含义上来看是否定的,但仍然是有其含义的。而 undefined 值则不同,像它的字面意思那样,仅仅指的是一个尚未定义的值。
对于 undefined 值来说,并不存在与之相对应的 Undefined 类。因此如果像下面这样对 undefined 值进行点运算,将会产生 TypeError 异常。
会出现 undefined 值的情况
- 未初始化的变量的值
- 不存在的属性的值
- 在没有传入实参而调用函数时,该函数内相应参数的值
- 没有 return 语句或是 return 语句中不含表达式的函数的返回值
- 对 void 运算符求值的结果(常常会通过使用 void 0 来获取一个 undefined 值)
null 值可能会引起程序出错,而 undefined 值比它更容易引发错误。令情况更为混乱的是,如果对 null 值和 undefined 值做进行数据类型转换的等值运算(
==
),结果为真。此外,对于不进行数据类型转换的等值运算(===
),其结果则为假。
undefined 值是一种有着非常高的潜在出错风险的语言特性,所以在使用 undefined 值时请多加留心。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?