什么是块范围在JavaScript中有用的真实示例?

时间:2018-05-16 07:51:29

标签: javascript scope var let

function isint(str){ if(str.match(/\d/g).length==str.length){ return true; } else { return false } } let已经为JavaScript引入了块级范围,现在我了解其中的区别。但我还没有找到一个引人注目的现实示例,其中const优于let

实际范围内的块范围提供了什么(通过示例说明)?

1 个答案:

答案 0 :(得分:0)

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