【JavaScript】标准内置变量 undefined
以下内容为学习记录,可以参考 MDN 原文。
环境
- node v12.18.1
- npm 6.14.5
- vscode 1.46
- Microsoft Edge 83
概念
全局属性 undefined 表示原始值 undefined。它是一个 JavaScript 的原始数据类型。
在现代浏览器(JavaScript 1.8.5/Firefox 4+),自ECMAscript5标准以来 undefined 是一个不能被配置(non-configurable),不能被重写(non-writable)的属性。即便事实并非如此,也要避免去重写它。
一个没有被赋值的变量的类型是 undefined。如果方法或者是语句中操作的变量没有被赋值,则会返回 undefined。
function test(a){
console.log(typeof a); // undefined
return a;
}
test(); // 返回"undefined"
一个函数如果没有使用 return 语句指定返回值,就会返回一个 undefined 值。
示例
严格相等和 undefined
你可以使用 undefined 和严格相等或不相等操作符来决定一个变量是否拥有值。
在下面的代码中,变量 x 是未定义的,if 语句的求值结果将是 true
var x;
if (x === undefined) {
// 执行这些语句
} else {
// 这些语句不会被执行
}
Typeof 操作符和 undefined
var x;
if(typeof x === 'undefined') {
// 执行这些语句
}
使用 typeof的原因是它不会在一个变量没有被声明的时候抛出一个错误。
// 这里没有声明y
if(typeof y === 'undefined') { // 没有错误,执行结果为true
console.log("y is " + typeof y ) // y is undefined
}
if(y === undefined) { // ReferenceError: y is not defined
}
Void 操作符和 undefined
var x;
if(x === void 0) {
// 执行这些语句
}
// 没有声明y
if(y === void 0) {
// 抛出一个RenferenceError错误(与`typeof`相比)
}
练习
function test(t) {
if (t === undefined) {
return 'Undefined value!';
}
return t;
}
let x;
console.log(test(x));
// expected output: "Undefined value!"
分类:
JavaWeb
, JavaScript
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!