Почему просмотр «let» в циклах for-in и for-of в ECMAScript отличается?Javascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Anonymous
 Почему просмотр «let» в циклах for-in и for-of в ECMAScript отличается?

Сообщение Anonymous »

Продукт ForInOfStatement в спецификации ECMAScript определяется следующим образом для случаев, которые меня смущают:

Код: Выделить всё

 for ( [lookahead ≠ let [] LeftHandSideExpression in Expression ) Statement
for ( [lookahead ∉ { let, async of }] LeftHandSideExpression of AssignmentExpression )
Не обращайте внимания на разницу «async of», которая уже хорошо документирована.
Почему существует разница между let и let [ отрицательный просмотр вперед?
В операторе for-in разрешен [ в качестве отрицательного просмотра вперед, я предполагаю, что этот синтаксис не будет охвачен строкой выше:< /p>

Код: Выделить всё

for (let[a] in [1]) ;
Если бы это было описано в строке выше, это означало бы «назначить ключ [1] для (let)[a]».
Если бы это было описано в строке выше, это означало бы «назначить ключ [1] для (let)[a]».
p>
Вместо этого синтаксис покрыт другой строкой, которая делает его объявлением let с шаблоном уничтожения массива.
Это имеет смысл.Это описано и действительно в строке выше в случае for-in:

Код: Выделить всё

for (let.a in [1]) ;
Т.е. назначьте ключ [1] для let.a.
Но это недопустимо для случая for-of:

Код: Выделить всё

for (let.b of [1]) ;
Firefox говорит:

Неперехваченная синтаксическая ошибка: выражение X в «for (X of Y)» не должно начинаться с 'let'

Node и chrome говорят:

SyntaxError: Левый -сторона цикла for-of не может начинаться с 'let'.

Для цикла for-of должно быть больше однозначности, которая расширяет ограничения для этого цикла. Что это за однозначность?< /п>

Подробнее здесь: https://stackoverflow.com/questions/793 ... n-ecmascri
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Javascript»