# undefined 和 void 0
# undefined
与众不同的 undefined
;
undefined
是关键字吗?
var null; // Uncaught SyntaxError: Unexpected token 'null'
var false; // Uncaught SyntaxError: Unexpected token 'false'
var undefined; // undefined
1
2
3
4
5
2
3
4
5
从本质上来说,undefined
不是一个关键字。
# 1、在全局环境 undefined
是一个 window下的一个只读属性
// 全局
var undefined = 10;
console.log(undefined); // undefined
console.log(undefined in window); // true;
1
2
3
4
2
3
4
- 2、在局部作用域中
undefined
可以作为变量
function func () {
let undefined = 10;
console.log(undefined);
}
func(); // 10;
1
2
3
4
5
6
2
3
4
5
6
# void 0
console.log(void 0); // undefined
console.log(void 1234); // undefined
1
2
2
void 是一个关键字,void后面可以跟一个表达式,不管void后面的表达式运算结果是多少(任意的一个表达式),最终整个表达式返回一个 undefined
的结果,所以void 后面写 0, 1, 2等等都可以,为了统一编程习惯,所以一般后面写0。