【问题标题】:What is a real-world example of block scope being useful in JavaScript? [duplicate]什么是块作用域在 JavaScript 中有用的真实示例? [复制]
【发布时间】:2018-10-26 04:08:17
【问题描述】:

letconst 为 JavaScript 引入了块级作用域,现在我明白了其中的区别。但我还没有找到一个令人信服的真实示例,其中letvar 具有优势。

块作用域在实际中提供了什么(举例说明)?

【问题讨论】:

标签: javascript scope var let


【解决方案1】:

1) 它与其他语言保持一致:

对于var,通常很不清楚变量是在哪里定义的,我们可以在哪里访问它而不是:

 if(false) {
    var a = 1;
 } else {
    a = 2; // wtf
 }
 alert(a);

let 很明显:

let a;
if(false) { a = 1; } else { a = 2; }

2) 它允许在 for 循环中进行有用的闭包:

 for(var i = 0, i < 10; i++)
   setTimeout(() => console.log(i), 100);
   // 10 10 10 10 ...

 for(let i = 0, i < 10; i++)
   setTimeout(() => console.log(i), 100);
   // 0 1 2 3 4 5 6 ...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-09
    • 1970-01-01
    • 1970-01-01
    • 2015-04-20
    • 2010-11-03
    相关资源
    最近更新 更多