javascript - 为什么在 JavaScript 中让 at 函数作用域?

标签 javascript scope

我了解 letvar 的 block 与函数作用域(或者我认为我了解)。最近我遇到了一些在函数范围内使用 let 的 JavaScript,我认为它等同于使用 var,例如:

function xyz ( abc ) {
    let mno = abc - 1;   /* or whatever */
    ...
}

那和在那里使用 var 之间有什么功能上的区别吗?或者它只是一种风格上的东西?

最佳答案

函数范围内的一个区别是 temporal dead zone如果您尝试在 let 定义之前引用它,就会发生这种情况:

function example() {
    console.log(a); // undefined
    console.log(b); // ReferenceError: b is not defined
    var a = 1;
    let b = 2;
}

关于javascript - 为什么在 JavaScript 中让 at 函数作用域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34984202/

相关文章:

javascript - 我使用 rawgit 是否错误?

javascript - 如何改变图像上的颜色?

javascript - 使用 JavaScript 更改大量样式

JavaScript 自调用

logging - MVC 日志记录范围

javascript - Touchable Opacity onPress 无法调用函数 - 范围问题?

javascript - 检测 Canvas.toDataURL 的大小(以千字节为单位)

javascript - 没有非法字符。没有单引号。没有双引号。但还是需要逃避

python - 从类定义中的列表理解访问类变量

Java变量没有改变,即使在引用它指向的变量之后也发生了改变