最近在写一个js小项目,对执行效率的要求比较高
在程序中,需要频繁读写某一用于记录状态的变量,目前对这个变量的类型有两种想法:
1、作为对象(Object)
status.x=111;
status.y=222;
//...
2、作为数组(Array)
//在文档中规定,[0]表示x,[1]表示y,...
status[0]=111;
status[1]=222;
//...
目前纠结于,前者的语义更优,但就实现上而言,猜测后者的查找效率可能更优
所以请问,在各大JS引擎的实现中,后者的查找效率是否高于前者?
算了,写测试程序在各大引擎上跑了跑,V8有优化,另外没有。结题。
话说数组不就是一种特殊的对象么?
就用对象,你只需考虑语义和用着方便就够了。
程序效率还不用纠结到这上面来,把程序里面的逻辑和流程好好优化优化效果更明显。因为一个程序一般来说都有好几种写法,只是大多时候你习惯一种写法。
常见的优化比如,函数提取、for循环>forEach>map,流程运行将概率大的判断放在前面并及时返回等等(这些东西一方面可以通过分析和体会得到,另外还可以通过benchmark来实测)。
再说一句,好的程序是不需要或者很少写注释别人就能快速看懂的,尤其要避免一些非程序性的规定(比如你这个)。