跳到主要内容

编写高效的JavaScript

一些编码习惯能够让代码跑的更快,本文补充一些不常见的优化原则

免费2015-11-27#JS#JavaScript性能优化#js优化原则#js编码技巧

试读

##一.最快的条件判断

###if语句的适用场景

  • 2个之内的离散值需要判断

  • 大量的值能容易的分到不同的区间范围中

###switch语句的适用场景

  • 超过2个少于10个离散值需要判断

  • 条件值是非线性的,无法分离出区间范围

###数组查询的适用场景

  • 超过10个值需要判断

  • 条件对应的结果是单一值,而不是一系列操作

##二.字符串操作

###字符串连接

现代浏览器已经对字符串做了优化,如果字符串较短(少于20个字符)且数量较少(少于1000个),所有浏览器都能用+运算符在1ms内完成

所以,用push + join优化字符串连接已经没有必要了,在大多数场景下,直接+就好了

###裁剪字符串

ES5提供了原生的trim,如果环境中没有,可以使用下面这个最快的trim实现:

function trim(text) {
    text = text.replace(/^\s+/, '');
    for (var i = text.length - 1; i >= 0; i--) {
        if (/\S/.test(text.charAt(i))) {
            text = text.substring(0, i + 1);
            break;
        }
    }

    return text;
}

或者一个不快但更简单的版本:

function trim(text) {
    return text.replace(/^\s+/, '').replace(/\s+$/, '');
}

##三.数据存取

保证效率的原则如下:

  • 用局部变量缓存需要频繁存取的值

比如arr.length,DOMNode List

  • 缩短作用域链

除了with之外,try-catchcatch也会增长作用域链(在作用域链顶部增加了一个对象,该对象包含了异常对象),所以尽量不要在catch块里包含太多的代码,以降低性能影响

###参考资料

  • 《高性能网站建设进阶指南》

评论

暂无评论

提交评论