js,通过字面量访问对象底层是怎么样的,太复杂的字面量对效率有影响吗? 5C

如题,如果有一个

 object = {
}
    for(let i = 0 ; i < 1000 ; i ++ ) {
        object[generator()] = "aaa" ;
    }
function generator (){} //返回一个很长的,不排序的字符串

这个字符串如果太长,或者里面的字符比较复杂有中文有英文也有标点符号的话,会不会对性能有影响,或者在通过 object["已经知道的字符串"]来访问的时候会不会很慢。

0

4个回答

不会你想象那么慢,js属性是hadh方式查找,长字符串也会生成对应hash值。
https://segmentfault.com/a/1190000007692754

0

这个要看底层的实现,对于google v8等现代的js引擎来说,你多虑了,因为它可以很巧妙地将obj[prop]这样的访问通过jit提前编译为静态的绑定,效率和obj.prop是几乎相同的。
如果你有顾虑,可以自己验证下。

0

s对象基于是hash表存储的,字符串很长会慢点,但不会特别慢
http://www.360doc.com/content/17/0111/15/2793098_621786220.shtml

0

不会那么慢的,不过你可以generator (){} 返回uuid.

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!