let vs var 在全局范围内

let vs var in the global scope

为什么这会按预期打印名称:

var firstName = 'Charlie',
    lastName  = "Brown"

function showFullName() {
    console.log(this.firstName+' '+this.lastName);
}

window.showFullName();

但是,如果我将 'var' 替换为 'let',我会得到 'undefined' 的 firstName 和 lastName?

我还看到使用 'var' 声明的变量附加到 window 对象,但是那些使用 'let'.

声明的变量

感谢您的帮助。

Let 允许声明限制在特定范围内的变量,可以是块或表达式。其中 var 用于全局或局部声明。我们可以使用 var 而不是 let,但反过来会失败。