let和var

var声明的变量作用域只有两种:
(1)全局变量(就算是定义在一个块里面也是全局变量)
(2)函数内部的局部变量(注意是函数内部)

var i=5;
for(var i=0; i<10; i++){}
alert(i);//结果为10
/*循环体内的i也是全局变量,相当于对循环体外的i进行了重新声明*/

let声明的变量作用域为所处块。

var i=5;
for(let i=0; i<10; i++){}
alert(i);//结果为5
/*循环体里的i的作用域为循环体,可以理解为和循环体外的i不是同一个*/

猜你喜欢

转载自blog.csdn.net/weixin_44645309/article/details/112687647