javascript - ECMAScript 规范中的 `ExpressionNoIn` 是什么意思?

标签 javascript ecmascript-5

我正在深入研究 for 循环并在 http://www.ecma-international.org/ecma-262/5.1/#sec-12.6.3 的规范中遇到 ExpressionNoIn

这是什么意思?

最佳答案

section 11.14 中有解释“逗号运算符 ( , )”:

Comma Operator ECMA Spec

*NoIn 具有相同的结构,只是 in 排除了 in 关键字的使用,第 11.8 节“关系运算符”:

Relational Operators ECMA Spec

规范说:

The "NoIn" variants are needed to avoid confusing the in operator in a relational expression with the in operator in a for statement.

As in 有两种用法:

for (var x in foo) { ... }

或者:

if ('x' in foo) { ... }

“NoIn”变体使得无法在 for 循环的第一个表达式中使用上面的 in 的第二个版本。所以,下面的代码是无效的:

for (y = 'x' in foo; y; y = false) { ... }

关于javascript - ECMAScript 规范中的 `ExpressionNoIn` 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29309806/

相关文章:

javascript - 图像的插入边框半径

javascript - 使用javascript在div中的多行字符串

javascript - 无论如何让实例共享相同的功能但同时具有私有(private)变量?

javascript - 如何在 ES5 中实现 "class extending"函数(例如装饰器函数),该函数也适用于 ES2015 类

javascript - 有没有办法用 JavaScript 访问子类中的父类(super class)变量?

javascript - 显示可滚动元素的底部,而不是默认的顶部

javascript - 如何中断nodejs中超时长时间运行的方法?

maven - 带有 wro4j 和 Google Closure Compiler 的 ECMASCRIPT 5

javascript - ES5 定义不可更改的数组/属性值

Javascript:如果 CSV 中没有,则将值添加到 CSV - 如果已经在 CSV 中 - 从 CSV 中删除