什么void 0
意思
void[MDN]是带一个参数且始终返回的前缀关键字
undefined。
例子
void 0void (0)void "hello"void (new Date())//all will return undefined
有什么意义呢?
似乎很没用,不是吗?如果它总是返回
undefined,那么仅使用
undefined自身又有什么问题呢?
在理想的世界中,我们将能够安全地使用
undefined它:它比更加简单易懂
void0。但是,如果您以前从未注意到过,这不是一个完美的世界,尤其是在涉及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另一方面,不能忽略。
void0将永远返回
undefined。
undefined另一方面,可以是Javascript先生决定他要成为的任何东西。
为什么void 0
,特别是?
为什么要使用
void 0?有什么特别之处
0?我们不是一样容易使用
1,或
42,或
1000000或
"Hello, world!"吗?
答案是,是的,我们可以,而且效果也很好。传递
0而不是传递其他参数的唯一好处
0是简短而惯用。
为什么这仍然有意义?
尽管
undefined在现代Javascript环境中通常可以信任,但
void0它有一个琐碎的优点:它更短。这种差异不足以在编写代码时担心,但可以在大型代码库上加起来,大多数代码缩减器将其替换为该代码库
undefined,
void0以减少发送到浏览器的字节数。


![“ void 0”是什么意思?[重复] “ void 0”是什么意思?[重复]](http://www.mshxw.com/aiimages/31/451930.png)
