Для цикла давайте область видимости stackblitz против инструментов Chrome Dev - PullRequest
0 голосов
/ 04 октября 2018

Почему следующий код дает другой результат в StackBlitz по сравнению с Chrome Dev Tools?

Я бы ожидал, что i будет undefined вне цикла for (согласенс результатом Chrome Dev Tools).

Что здесь происходит с результатом Stackblitz?


Stackblitz (пустой проект ES6)

enter image description here


Chrome Dev Tools

enter image description here

Ответы [ 2 ]

0 голосов
/ 04 октября 2018

В Chrome вы запускаете нативный ES6 в своем браузере, Stackblitz - это Babel, компилирующий ES6 до ES5, и пусть let станет var.Переменная var имеет область видимости во всем блоке.

0 голосов
/ 04 октября 2018

StackBlitz переносит код в ES5, таким образом изменяя let на var.Последний имеет функциональную область видимости, поэтому он виден вне цикла.

...