http://blog.csdn.net/aitangyong/article/details/40309211
http://web.jobbole.com/86145/
综合以上两个博客:
1.void其实是javascript中的一个函数,接受一个参数,返回值永远是undefined。可以说,使用void目的就是为了得到javascript中的undefined。So void 0
is a correct and standard way to produce undefined
- void 0
- void (0)
- void "hello"
- void (new Date())
- //all will return undefined
2.
主要有2个原因:
a、使用void 0比使用undefined能够减少3个字节。
>"undefined".length //9
>"void 0".length //6
b.undefined并不是javascript中的保留字,我们可以使用undefined作为变量名字,然后给它赋值。这样就会导致不一定会返回undefined,而void 0却永远可以保证。
(function(){
var undefined="haha";
alert(undefined); //"haha"
})()
3.额外篇:
(function() {
undefined = 10;
alert(undefined); // // undefined -- chrome
})();