【发布时间】:2020-04-23 22:46:01
【问题描述】:
我对 javascript 具有词法范围感到困惑。
词法作用域:词法作用域意味着在您定义函数的作用域内(与调用它时相反)的任何变量都在函数的作用域内。
但是在 JS 中它的: 范围不是在定义和编译函数时分配,而是在运行时分配,即在调用函数时分配
在下面的例子中:如果 JS 有词法作用域,我会得到一个错误。但是我没有因为提升和运行时 js 引擎检查 x。
function f() {
console.log(x);
}
const x = 10;
f(); // 10
有人可以用一个例子来解释一下 JS 如何具有词法范围吗?谢谢!
【问题讨论】:
标签: javascript scope lexical-scope