let与for

正常的var与for:

let与for:

var和for一起使用的时候,变量只有一个,不存在作用域,但是let和for一起使用的时候,实际上就有两层作用域,for小括号里面的为外层作用域,大括号内为内层作用域。结构大致如下:

这种结构,如果内层用let重新定义一个i也是没关系的:

注意,这里内部用let定义是可以的,因为let是以大括号为作用域的,如果使用var就会报错,因为var会先将变量提升,然后let这里就会报变量已存在的错误。

这种错误情况的结构大致如下:

暂时性死区

let/const变量在定义前不能被使用:

注意上面的bar(x=y,y=2){},参数上的声明用的其实是let,因为y在声明前使用了,所以报错。

变量声明

相同作用域下,let声明后,不能再用let和var声明,但是可以直接声明,例如let a=10;a=20;是可以的。

其他文章

0
我要评论

评论

返回
×

我要评论

回复:

昵称:(昵称不超过20个字)

图片:

提交
还可以输入500个字