首页 > 解决方案 > 什么是块作用域在 JavaScript 中有用的真实示例?

问题描述

letconst在 JavaScript 中引入了块级作用域,现在我明白了其中的区别。但是我还没有找到一个令人信服的现实世界的例子,let它比var.

块范围在实际中提供什么(通过示例说明)?

标签: javascriptscopevarlet

解决方案


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 ...

推荐阅读