js中关于const在for in或者for of中的使用

js中关于const在for in或者for of中的使用

const声明的变量在一个块级作用域中是不能够重新赋值
那么在这个for循环当中使用会报错:

for(const i = 0;i<3;i++){
	console.log(i);
}

在chrome浏览器中我们可以看到如下错误:
在这里插入图片描述
那么在for of或者for in当中使用就不会产生错误:

let arr = [1,2,3,4,5];
for(const value of arr){
	console.log(value);
}

在chrome浏览器中我们可以看到数组的内容:
在这里插入图片描述
产生这样的原因主要在于:
for in 和for of它们两个都是一种严格的迭代语句,对于对象中的每一个属性值,有一个指定的语句块被执行。也就是每一次循环,都会产生一个块级作用域来完成每个变量的行为。我可以把上面的例子理解为如下:

{const value = arr[0];}
{const value = arr[1];}
...
{const value = arr[4];}

然而for循环并不会遍历对象的属性,每一次循环都是在同个块级作用域中进行,使用const声明就会报错。
所以在for in或者for of当中,推荐使用const来确保访问到的属性值不会被后续语句所改变。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值