Javascript ES6 变量语法新标准 let

C 2019-11-18 2308

在 ES6 中 let 可以替换 var 对变量进行声明,其有点是声明只在块内有效,而不会随全局而改变。

这个方法特别适用于 for 循环,举例而言:

for(var i=0;i<5;i++){

img.onerror=function(){console.log(i);}

}

如果用 var 声明了循环次 i ,那么报错输出的结果可能都是 5。

原因是 onerror 是异步操作,在检测出图片出错的同时,循环可能已经向前执行。

等到出现报错时读取的是当前循环中的 i ,那么这个 i 可能就已经是后面的循环次了。

如果改用 let 声明循环次 i ,那么每个 i 和当前循环都是绑定的,再报错会显示当时的循环次数。

这个 let 相比 var 更加符合思考逻辑,也和 PHP 语法中的 $ 更加类似,非常好用。

最新回复 (0)