js中void 0和undefined的区别

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

  1. void 0  
  2. void (0)  
  3. void "hello"  
  4. void (new Date())  
  5. //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
})();
原文地址:https://www.cnblogs.com/yyzyxy/p/7754815.html