js编程性能分析

javaScript做为解释性语言,其执行速度要比编译型语言慢很多,然后在开发中却有很多需要注意的地方

一。注意作用域

1.避免全局查找

function test1(){

    var sArray=[];

    for(var i=0;i<10;i++){

            sArray.push(document.getElementById(i))//在作用域链中循环查找了10次

    }

}

function test2(){

    var sArray=[];

    var dom = document;//首先定位作用域链,只查询一次

    for(var i=0;i<10;i++){

            sArray.push(document.getElementById(i))//    }

}

test2要比test1性能优越

2.避免使用with创建额外的作用域

function update1(){

    with(document.body){//创建了额外的作用域

        alert(tagName);

       innerHTML = "hello world";

    }

}

function update2(){

     var body = document.body;

      alert(body);    

       body.innerHTML = "hello world";

    }

}

update2要update1可读性强,而且作用域范围小。

二。方法的争取选择

1.选择最优算法,尽量减少计算和转化;

2.优化循环()

(1).减值迭代替换加值迭代,

(2).简化终止条件

for(var i=0;i<array.length;i++){

 ---

}

var length = array.length;

for(var i=0;i<length;i++){

 }

后边的循环减少了每次循环条件的计算。在循环次数过大的情况下有很大的优势。

(3).简化循环体,确保不需要循环的变量移除循环体内。

(4).使用后测试循环(避免最初循环条件的判断)

3.当循环次数有限时,取消循环多次执行循环体往往更快

4.避免双重解释

5.尽量采用原生方法(由于原生方法采用编译型语言写,所以执行速度很快)

6.swith替换复杂的if。。。else(一次定位满足条件的情况要比多次比较寻找满足条件要快)

三。最小化语句数

1.一次声明替换多个变量多次声明。

四.优化dom

1.使用innerHTML替换createElement和appendChild方法

2.优化nodelist

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值