尽量避免使用eval函数:
多了一步解析的步骤
function testNoEval() {
var startTime = new Date();
for(var i=0; i<500000; i++) {
var str = 'test';
}
var endTime = new Date();
console.log( '耗时1:' + (endTime - startTime) + 'ms');
}
function testEval() {
var startTime = new Date();
eval("for(var i=0; i<500000; i++) { var str = 'test'; }");
var endTime = new Date();
console.log( '耗时1:' + (endTime - startTime) + 'ms');
}
testNoEval(); //耗时1:1ms
testEval(); //耗时2:222ms
拼接字符串:(尽量使用数组join方法)
function testNoJoin(){
var startTime = new Date();
var testStr = "abcdefghqwertyuiolkjmzxv";
var result = "";
for(var i=0; i<50000; i++) result += testStr;
console.log('耗时1:' + (new Date() - startTime) + 'ms');
}
function testJoin(){
var startTime = new Date();
var testStr = "abcdefghqwertyuiolkjmzxv";
var result = "";
var strs = new Array();
for(var i=0; i<50000; i++) strs[i] = testStr;
result = strs.join("");
console.log('耗时2:' + (new Date() - startTime) + 'ms');
strs = null;
}
testNoJoin(); // 耗时1:7ms
testJoin(); // 耗时2:6ms
原生的代码比js内置函数速度更快;
1 > 2 ? 1 : 2;
Math.min(1, 2);
记录,待更新