E6新语法for of 和ES3的for in 有什么区别?useState为什么是用数组结构而不用对象?

for of 是es6新增的循环方式,请问for in 和for of的区别

1  for in会返回数组中所有可枚举属性,包括原型链上可枚举的属性,会遍历对象的整个原型链,性能较差不推荐使用;
for of 不会往原型链下继续循环遍历,只会返回数组索引对应的属性值;

 for in 遍历数组拿到的是数组的索引
 for in 遍历对象拿到的是对象的key值;
 for of 遍历数组拿到的是数组的值
 for of 不能用来遍历obj {a:1}因为对象不是可迭代属性;
总结
for in 循环主要是用来遍历对象的,【它虽然可以用来遍历数组,但是因为性能原因不适用于遍历数组。】;
for of 循环可以用来遍历数组,不能用来遍历对象【遍历对象会报错】;

useState为什么是用数组结构而不用对象?

因为数组的结构可以自己任意定义变量的名称,而如果使用对象的话就只能跟hooks内部的变量名一个的名字,如果需要自定义名字则要用E6语法:去改名字,这样代码量会变大。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值