void 0 是什么意思?
在一些高逼格的代码里经常看到void 0,如果还不熟悉赶快看看MDN;
简单的讲法就是void关键字会执行后面相关的运算但是始终返回undefined,运行下面的例子:
var a = void 0;
console.log(a); // undefined
为啥要使用void 0?
undefined本来就不是JS语法的保留关键字,所以会存在被覆盖的可能,它只是全局对象的一个属性而已;但是在ES2015中已经是全局对象的一个只读(read-only)属性了,不能重写;什么情况下可以被覆写?
* 比如在去不作用域中:
(function() {
var undefined = 123;
alert(undefined);
})();
- 在IE8及IE8以下中:
var undfined = 123;
alert(undefined);