Ecmascript 6 中的语句和运算符的javascript

Ecmascript 6 中的语句和运算符的javascript,ecmascript-6,Ecmascript 6,ecma-262规范中有一个注释: 需要[In]语法参数,以避免将关系表达式中的In运算符与for语句中的In运算符混淆 那么,有什么办法可以让你 for (let i in x in y) { console.log(i); } 打印内容?括号将使其解析更清晰: for(让i进入(x在y中)){ 控制台日志(i); } 但是没有它们,它实际上解析得很好。另一种for循环需要消除歧义: for(c中设a=b;false;);//不解析 for(设a=(c中的b);false;);//解

ecma-262规范中有一个注释:

需要[In]语法参数,以避免将关系表达式中的In运算符与for语句中的In运算符混淆

那么,有什么办法可以让你

for (let i in x in y) {
   console.log(i);
}

打印内容?

括号将使其解析更清晰:

for(让i进入(x在y中)){
控制台日志(i);
}
但是没有它们,它实际上解析得很好。另一种for循环需要消除歧义:

for(c中设a=b;false;);//不解析
for(设a=(c中的b);false;);//解析很好
您的代码段没有打印任何内容的原因是y中的x总是导致布尔值,因此除非您在布尔值上定义了可枚举属性。prototype或对象。prototype:

Boolean.prototype.foo='bar';
for(让a在{}中(''){
控制台日志(a);
}//打印“foo”

括号将使其解析更加清晰:

for(让i进入(x在y中)){
控制台日志(i);
}
但是没有它们,它实际上解析得很好。另一种for循环需要消除歧义:

for(c中设a=b;false;);//不解析
for(设a=(c中的b);false;);//解析很好
您的代码段没有打印任何内容的原因是y中的x总是导致布尔值,因此除非您在布尔值上定义了可枚举属性。prototype或对象。prototype:

Boolean.prototype.foo='bar';
for(让a在{}中(''){
控制台日志(a);
}//打印“foo”