'void 0'是什么意思?
  可能重复: 
  “javascript:void(0)”是什么意思? 
通过Backbone.js源代码阅读,我看到了这一点:
validObj[attr] = void 0;
  什么是void 0 ?  这里使用它的目的是什么? 
  void 0是什么意思? 
  void [MDN]是一个前缀关键字,它接受一个参数并始终返回undefined 。 
例子
void 0
void (0)
void "hello"
void (new Date())
//all will return undefined
那有什么意义呢?
  这似乎很无用,不是吗?  如果它总是返回undefined ,那么使用undefined本身有什么问题? 
  在一个完美的世界中,我们可以安全地使用undefined :它比void 0更简单易懂。  但如果你以前从未注意过,这不是一个完美的世界,特别是当涉及到Javascript时。 
  使用undefined的问题是undefined不是保留字(它实际上是全局对象[wtfjs]的一个属性)。  也就是说, undefined是一个允许的变量名称,所以你可以在你自己的随机分配一个新的值。 
alert(undefined); //alerts "undefined"
var undefined = "new value";
alert(undefined) // alerts "new value"
  注意:在任何支持ECMAScript 5或更新版本的环境中(例如,实际上在任何地方,除了IE 8),这不再是一个问题,它将全局对象的undefined属性定义为只读(所以它只能映射变量在你自己的本地范围内)。  但是,这些信息对于向后兼容的目的仍然有用。 
alert(window.hasOwnProperty('undefined')); // alerts "true"
alert(window.undefined); // alerts "undefined"
alert(undefined === window.undefined); // alerts "true"
var undefined = "new value";
alert(undefined); // alerts "new value"
alert(undefined === window.undefined); // alerts "false"
  另一方面, void无法被超越。  void 0将始终返回undefined 。  另一方面, undefined可以是Javascript决定他希望成为的任何东西。 
  为什么void 0 ,具体? 
  为什么我们应该使用void 0 ?  关于0的特别之处是什么?  难道我们不能轻易使用1 ,或42 ,或1000000或"Hello, world!"  ? 
  答案是,是的,我们可以,而且它也会起作用。  传递0而不是其他参数的唯一好处是0是短而惯用的。 
为什么这仍然是相关的?
  尽管在现代JavaScript环境中undefined值通常是可信的,但void 0有一个简单的优势:它更短。  这种差异不足以担心编写代码的时间,但它可以在大代码基础上加起来,大多数代码缩减器用void 0代替undefined ,从而减少发送到浏览器的字节数。 
 void 0返回undefined,不可覆盖, undefined可被覆盖。 
var undefined = "HAHA";
  void是一个保留的JavaScript关键字。  它评估表达式并始终返回undefined 。 
