为什么不直接用undefined
- undefined不是一个保留字,是全局对象的一个属性,在低版本 IE 中能被重写;
var undefined = 10;
alert(undefined);
// undefined -- chrome
// 10 -- IE 8
- 在ES5中,undefined只是一个全局对象的 (只读)属性,不能被重写,但是在局部作用域中可以被重写;
(function() {
var undefined = 10;
alert(undefined);
// 10
})();
为什么是用void 0 代替
MDN 定义: The void operator evaluates the given expression and then returns undefined.
因为void运算符对任何表达式求值都是undefined,所以可以完美替换; 至于是void 0还是void 1都无所谓;