先来看看void运算符
void运算符对给定的表达式进行求值,然后返回undefined。
所以,使用void 0 、void 1、void + 任意表达式返回的都是undefined。
作用一:防止undefined被重写
因为undefined是global的一个属性,再ie低版本可能会被重写。
undefined = null
事实上,undefined再ES5中已经是global对象的只读属性了,但是在局部作用域还是可以修改的。
function(){
undefined = null
}()
而void 返回的就是undefined
作用二:减少代码大小
既然跟任意表达式 返回的都是undefined,那就跟一个最简单的表达式最好了。
减小js代码,提高js加载速度,减少内存占用。
if (value !== void 0 && value !=== null) {
//逻辑处理
}