for-in/of/Object.keys之间的关系

for-in/of

  • 在in的时候,是打印所有的key,但是在of的时候,是打印所有(key为数字的情况)的value

  • 并且arr[1] 和arr[‘1’] 一样的,在下标(或者 key) 中,不区分Number和String,数组就是对象

  • for-in循环:只能获得对象的键名key,不能获得键值,且会遍历对象的整个原型链,主要用于遍历对象,格式:for(keys in zhangsan){}

  • for-of循环:允许遍历获得键值value,只遍历当前对象不会遍历原型链,作为遍历所有数据结构的统一的方法。

object.keys和for-in区别

  • 两者之间最主要的区别就是Object.keys( )不会走原型链,而for-in 会走原型链
  • object.keys返回的是数组(key值)
let arr = ['a', 'b', 'c']
arr["3"] = 'd'
arr["key"] = 'e'
arr[5] = 'f'

for (let key in arr) {
    console.log(key);
}
//0 1 2 3 5 key
console.log("======");

for (let value of arr) {
    console.log(value)
}
//a b c d underfined f
console.log("======");

let keys = Object.keys(arr);

console.log(keys);
//[ '0', '1', '2', '3', '5', 'key' ]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值