在下面的代码片段中,在函数f之后声明了i,所以函数f如何访问i的值?
let f; if(true){ f = () => { console.log(i) } let i = 1; } f();
i与]的值> block(使用f的匿名函数)在同一i中声明,因此它是in scope。另外,声明的变量由Javascript引擎hoisted(不是分配给它),这意味着在以前的代码行中访问它们不会引起任何错误。
i
block
f