通过阅读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
它:它比更加简单易懂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
,void 0
以减少发送到浏览器的字节数。
我不知道问号(< code >?)在java里代表,我在做一个小程序,一个Nim-game。我们在一本书里寻求帮助,看到了这样一句话: 我不明白,表示,它可以与if语句有关但您将其放在变量中吗?并且可以是“其他”?(我刚才说的这些事情可能会很误导)
那么,在Java中,你们都用什么来处理它们呢?
问题内容: 我写Java已有一段时间了,今天我遇到了以下声明: 请注意数组声明中的“点点点”,而不是通常的括号[]。显然可以。实际上,我写了一个小测试并验证了它的有效性。因此,我提取了Java语法,以查看参数声明语法的位置,但未找到任何内容。 那么对那里的专家来说,这是如何工作的呢?它是语法的一部分吗?另外,虽然我可以像这样声明函数,但不能像这样在函数体内声明数组。 无论如何,您知道在哪里记录了此
但是得到了错误:
我很难理解<代码> 结果是15 但是怎么会变成15呢?