В стандарте ES6 предусмотрены временные мертвые зоны, что делает ссылку на переменную невозможной до тех пор, пока не будет оценена лексическая привязка. Итак, что означает создание переменной во время инициализации лексической среды для
- Программист?
- Компилятор?
Объявление переменной с использованием объявления var
могло означать что-то для программиста раньше, но теперь с TDZ начинает ли javascript вести себя как java для этой цели? Есть ли какая-то другая причина, кроме способа работы интерпретатора javascript, которую мы поднимаем (в результате TDZ) в первую очередь?
Что происходит, когда лексическая привязка встречается позже в коде из-за порядка выполнения, даже если код появляется раньше, чем он лексически?
let abc = f();
let b;
f(){ return b;}
Когда традиционные языки программирования, такие как java, создают переменные? Когда встречается объявление переменной? или когда инициализируется лексическая область видимости?
let
. посмотрите, как в выводе js сценария coffee перечислены все вары вверху, и представьте, что функции js внутри делают то же самое. переменная видна, но пуста, пока вы не присвоите ей значение. - person dandavis   schedule 03.02.2016typeof
валидацию невозможной. TDZ - это принудительное изменение, если бы это было не так, это был бы простой случай изменения функциональной области на область блока. - person sasidhar   schedule 03.02.2016typeof
меняется? - person dandavis   schedule 03.02.2016