变量不是也用 let 全局变量在外面声明吗?



我正在尝试理解新的函数语法。

当我使用let it声明变量'value'时,我得到一个错误

ReferenceError: value is not defined

,但如果我使用var或不使用var,输出将打印为test。我假设'value'变量是全局的,因为它是在外部定义的。

但是为什么它与var一起工作,而不是让,虽然两者都是全局变量?

let value = "test";
function getFunc() {
// value = "test";

let func = new Function('console.log(value)');

return func;
}

getFunc()();

在顶层,let不像var那样在全局对象上创建属性。

var foo = "Foo";  // globally scoped
let bar = "Bar"; // not allowed to be globally scoped
console.log(window.foo); // Foo
console.log(window.bar); // undefined

参考

因此,let只能在{}表示的封闭块内使用。

相关内容

  • 没有找到相关文章

最新更新