【发布时间】:2012-09-23 23:31:44
【问题描述】:
我看到一些例子表明 Firefox 支持某种 JavaScript 语法,类似于 *something* if *expression*;。
作为我所说的示例,请参阅this MDN article,其中包含以下示例:
var evens = [i for each (i in range(0, 21)) if (i % 2 == 0)];
我的问题是:
用什么名字来描述这种语法?我主要想知道这个,以便我可以谷歌它并阅读更多关于它的信息。我已尝试尽我所能在 Google 上搜索,但无法将正确的术语放在一起以获得有用的结果。
这种语法可以存在于数组理解之外的其他地方吗?我觉得我已经看到了在数组之外使用这种语法的其他示例(例如上面的示例),但我不确定。
我可以在哪里阅读有关此语法的更多信息?
除了 Firefox 之外,还有其他浏览器支持吗?
此功能是否在 ES5 中或计划用于 ES-harmony?
【问题讨论】:
-
“用什么名字来描述这种语法?” - 你链接到的文章称它为“数组理解”。
-
我可能错了,但我认为该术语指的是数组部分中的
for each。我想我已经看到在数组之外使用了这种不同的if语法,但我不确定。 ? -
数组解析不仅更加紧凑,而且实际上更易于阅读,一旦您熟悉了这个概念。我'一旦我确定每个人都知道语法,我才敢使用它。维护者是一个暴力精神病患者和所有......
-
“我认为如果在数组之外使用语法,我已经看到了这种不同” - 在这种情况下,
if仍然是数组理解的一部分。通常if在关闭)之后会有一个语句或{ }块 - 事实上它在数组理解中没有你所说的“不同的 if 语法”是什么意思?
标签: javascript ecmascript-harmony