var有一个问题,就是定义的变量有时会莫名奇妙的成为全局变量。
例如这样的一段代码:
<script>
    for (var i=0;i<5;i++){
        console.log(i);
    }
    console.log("循环外:"+i);
</script>
你猜下打印的结果是什么?

let:
let所声明的变量,只在let命令所在的代码块内有效。
我们把刚才的var改成let试试:
<script>
    for (let i=0;i<5;i++){
        console.log(i);
    }
    console.log("循环外:"+i);
</script>
结果:

const:

原文:https://www.cnblogs.com/Tunan-Ki/p/11848078.html