undefined是一个全局属性,表示未定义或定义了没有赋值。
void是一个一元运算符,不管传入什么参数都会返回undefined。
void操作符是在ECMAScript v1中定义的,而undefined是在ECMAScript v5中定义的。
我们知道undefined不是javascript的保留字,所以我们可以用undefined作为变量名。这时,我们定义的
undefined就会影响到使用undefined作为判断的地方。看下面例子:
测试了主流浏览器IE7-IE11、opera、firefox、safati、chrome
undefined=123; alert(undefined); //IE7、IE8是123,其余:IE9-IE11、opera、firefox、safati、chrome都是 undefined alert(void 0);//IE7-IE11、opera、firefox、safati、chrome都是undefined
最后,总结一下:
使用void 0代替undefined是为了兼容性以及预防代码的不规范(自己修改undefined的值)。
时间: 2024-10-29 19:11:30