如何获取安全的 undefined

... 2025-7-10 JavaScript
  • 数据类型
大约 1 分钟

注意,在 ES3 之前其实是没有原始值 undefined 这个值的,第三版引入这个值,其实是为了正式区分空对象指针(后面我们会介绍到这指的就是 null)与未经初始化的变量。在 ES3 中,window.undefined 就是一个普通的属性,我们完全可以把它的值改为任何真值。但从 ES5 之后,window.undefined 成了一个不可写,不可配置的数据属性,它的值永远是 undefined。

let undefined = 10

// Uncaught SyntaxError: Identifier 'undefined' has already been declared
// 未捕获的语法错误:标识符“未定义”已声明
1
2
3
4
var undefined = 10
consonle.log(undefined)
// 使用 var 声明时不会报错 但是获取变量名为 undefined 的值的时候,仍为 undefined
// 可以理解为 var 给变量 undefined 赋值失败
1
2
3
4

# 为什么要获取 undefined

因为 undefined 在 JavaScript 中不是保留字,可以当作变量来赋值。

这样,如果我们后期需要用到 undefined 来检测一个变量的话,那么检测的值就不准确了

let undefined = 10
let name

name == undefined
1
2
3
4

# 怎样获取 undefined

  • void (0)

    无论 void 后的表达式是什么,void 操作符都会返回 undefined。

  • 传入一个为赋值的形参

function fn(arg) {
  console.log(arg)
  // 在调用时不传参且在函数体内不赋值
  // 此时 arg 就是 undefined
}
1
2
3
4
5
  • 未赋值的变量
let num
//  此时 num 为 undefined
1
2
上次编辑于: 2025年7月10日 04:01
贡献者: HugStars