关于谷歌浏览器的js对象的快属性与慢属性

在解释快属性和慢属性时 我们可以先了解一下常规属性和排序属性, 先来看一段代码

    function Foo() {
      this[100] = 'test-100'
      this[1] = 'test-1'
      this["B"] = 'bar-B'
      this[50] = 'test-50'
      this[9] = 'test-9'
      this[8] = 'test-8'
      this[3] = 'test-3'
      this[5] = 'test-5'
      this["A"] = 'bar-A'
      this["C"] = 'bar-C'
    }
    var bar = new Foo()


    for (key in bar) {
      console.log(`index:${key}  value:${bar[key]}`)
    }

在上面这段代码里面代码执行顺序为:
index:1  value:test-1
index:3  value:test-3
index:5  value:test-5
index:8  value:test-8
index:9  value:test-9
index:50  value:test-50
index:100  value:test-100
index:B  value:bar-B
index:A  value:bar-A
index:C  value:bar-C
为什么会先执行 test1 是因为在对象中存在两种属性, 一种为排序属性 , 一种为常规属性,排序执行的书序为按索引升序排序, 常规属性按照字符串属性根据创建时的顺序升序排列。

 

对象的示意图

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值