哪种方式更有效?有区别吗?
这个:
var str = 'abc';
if(str.length == 20) {
//...
}
if(str.length == 25) {
//...
}
// and so on
Run Code Online (Sandbox Code Playgroud)
或者这一个:
var str = 'abc';
var length = str.length;
if(length == 20) {
//...
}
if(length == 25) {
//...
}
// and so on
Run Code Online (Sandbox Code Playgroud)
在可能实际上很重要的浏览器中(读取:IE),它将每次计算,因此将值存储在局部变量中会更快.
http://jsperf.com/string-length
它曾经是那样的
var len = someArray.length;
for (var i=0; i<len; i++) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
比...更快
for (var i=0; i<someArray.length; i++) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
但是现在,V8(Chrome的JS引擎)优化后者以比前者更快的速度运行.这很棒 - 请记住,你真的不需要担心Chrome的性能.
如果您想要了解有关JavaScript性能的更多信息,那么高性能JavaScript是一个可靠的读物.尽管如此,从一开始就采用其建议,因为在IE(6,7,8或甚至9)中使代码运行得更快的技巧可能会使代码在Chrome或Firefox 4中运行得更慢.
| 归档时间: |
|
| 查看次数: |
448 次 |
| 最近记录: |