Javascript性能考虑.点运算符比下标符号快
Javascript performance consideration. Is dot operator faster than subscript notation?
点运算符比下标符号更快吗?
var obj = {x: '5'};
obj.x = 'some value';
obj['x'] = 'some value';
没有什么令人难以置信的。通过window
或eval
访问变量的速度明显较慢。
这可能是过时的信息,但它至少影响到较旧的Safari版本。选自O'Reilly的《高效编写JavaScript:
》对于大多数浏览器,使用点实际上没有区别对象属性访问的表示法(data.count)和括号表示法("计数")(数据)。唯一的例外是Safari,它使用括号表示法明显比点表示法慢。这甚至适用于Safari 4及更高版本使用Nitro JavaScript引擎。
看起来http://jsperf.com/已经被取下了——它说的是Website Disabled
,但是使用Qt4的嵌入式WebKit引擎,使用这个测试,看起来这个陈述是正确的:
var t = new Date().getTime();
var x = { c: 123 };
for (var i = 0; i < 5000000; i++)
x['c'] += 2;
document.write(( new Date().getTime() - t ) + '; value ' + x.c);
var t = new Date().getTime();
var x = { c: 123 };
for (var i = 0; i < 5000000; i++)
x.c += 2;
document.write(( new Date().getTime() - t ) + '; value ' + x.c);
使用x['c']
大约需要4秒,而x.c
大约需要3秒。当前的Firefox和Chrome似乎没有区分这两者。
相关文章:
- 如何告诉MathJax对下标使用替代语法
- 返回JSON中的下标
- 当存在粘性标头时隐藏下拉列表“插入符号”
- HTML 输入中的上标和下标
- Javascript,为带有下标和上标的文本字段创建模板
- 如何找到下标字母表的unicode
- Javascript-将字符串中的所有数字更改为下标
- 有没有一般的下标函数
- mozIJSSubScriptLoader::loadSubScript:如何在不施加安全约束的情况下防止符号泄漏
- 如何JSON.解析并忽略数组下标
- 数组的下标是否被移到了正确的位置向左还是向右
- 从js对象渲染下标到HTML
- 在Javascript中给字符串下标
- Javascript性能考虑.点运算符比下标符号快
- 对数组的奇数下标处的所有数字进行平方
- 在Javascript中递增一个字符串下标数字
- 使用jquery将数据加载到下标按钮中
- 为什么子字符串不处理负下标
- 正则表达式有一个例外 - 如果数字是下一个符号,则不要匹配所有内容
- 元素的-1下标是什么意思?