外面声明的变量不也是用let global variable吗?
Isn't the variable declared outside with let global variable too?
我正在尝试理解新的函数语法。
当我使用 let it 声明变量 'value' 时,出现错误
ReferenceError: value is not defined
但是如果我使用 var 或不使用 var,输出将打印为测试。我假设 'value' 变量是全局变量,因为它是在外部定义的。
但为什么它与 var 一起使用而不是 let ,尽管它们都是全局变量?
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
Reference
因此 let
只能在由 {}
表示的封闭块内使用。
我正在尝试理解新的函数语法。
当我使用 let it 声明变量 'value' 时,出现错误
ReferenceError: value is not defined
但是如果我使用 var 或不使用 var,输出将打印为测试。我假设 'value' 变量是全局变量,因为它是在外部定义的。
但为什么它与 var 一起使用而不是 let ,尽管它们都是全局变量?
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
Reference
因此 let
只能在由 {}
表示的封闭块内使用。