让 vs var 在全局范围内



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

var firstName = 'Charlie',
    lastName  = "Brown"
function showFullName() {
    console.log(this.firstName+' '+this.lastName);
}
window.showFullName();

但是,如果我将"var"替换为"let",我将为firstName和lastName获得"未定义"?

我还看到使用"var"声明的变量

附加到窗口对象,但使用"let"声明的变量

感谢您的帮助。

let 允许声明仅限于特定范围的变量,可以是块或表达式。其中 as var 用于全局或本地声明。我们可以使用 var 代替 let,但反过来失败。

相关内容

  • 没有找到相关文章

最新更新