在傳統for
循環的初始化表達式中使用let
時,它的作用域爲for循環的塊。在for循環的初始化表達式中聲明的變量始終在詞法上始終在體內
細則中指出:
let
和const
聲明定義被限定在 運行變量執行上下文的LexicalEnvironment
。
是否意味着的i
聲明的一點是(甚至在ES5是(?))詞法(語義我知道使用var
將它懸掛)內塊包括主體for
循環(因爲它天真地看起來好像它是外面它)。
或者這是否意味着這是let
和/或for
循環的新特性,使其具有詞法上在循環體內的語義?
要清楚:我知道可見性語義是新的(即let
的塊範圍與var
的功能範圍)。我對定義的詞彙位置是否總是被置於循環體內感興趣。
for(let i = 0; i < 10; i++) {
// the body of the loop....
}
「*這是否意味着的'我申報點'在包含for循環體的塊內是詞法上的?*「 - 不,你是怎麼想的? – Bergi
相關:[let'的語義和block for scoping for循環](https://stackoverflow.com/q/30899612/1048572) – Bergi
不應該使用[tag:language-lawyer]標記該帖子嗎? – Dragomok