我了解 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; 
} 


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!