A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 不二晨 金牌黑马   /  2018-12-28 11:45  /  1081 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

由于JS是一种解释型语言,执行速度要比编译型语言慢得多
注作用域
访问全局变量总是比访问局部变量要慢,因为需要遍历作用域链。只要能减少花费在作用域链上的时间,就能增加脚本的整体性能
在ES6 按理来说 变量申明最好是:
const > let > var
避免全局查找
var imgs = document.getElementByTagName("img");
for(var i = 0, len = imgs.length; i < len; i++) {
  imgs.title = document.title + " image " + i;
}
1
2
3
4
var doc = document;
var imgs = doc.getElementByTagName("img");
for(var i = 0, len = imgs.length; i < len; i++) {
    imgs.title = doc.title + " image " + i;
}
1
2
3
4
5
避免with语句(with会创建自已的作用域,因此会增加其中执行代码的作用域的长度)
优化循环
循环是编程中最常见的结构,优化循环是性能优化过程中很重要的一部分。一个循环的基本优化步骤如下:
1) 减值迭代——大多数循环使用一个从0开始,增加到某个特定值的迭代器。在很多情况下,从最大值开始,在循环中不断减值的迭代器更加有效
2) 简化终止条件——由于每次循环过程都会计算终止条件,故必须保证它尽可能快,即避免属性查找或其它O(n)的操作。
3) 简化循环体——循环体是执行最多的,故要确保其被最大限度地优化。确保没有某些可以被很容易移出循环的密集计算。
4) 使用后测试循环——最常用的for和while循环都是前测试循环,而如do-while循环可以避免最初终止条件的计算,因些计算更快。
如:
在循环中 正确使用 break 和 continue 能够有效地提高代码效率
for(var i = 0; i < values.length; i++) {
    process(values);
}
1
2
3
优化1:简化终止条件

for(var i = 0, len = values.length; i < len; i++) {
    process(values);
}
1
2
3
优化2:使用后测试循环(注意:使用后测试循环需要确保要处理的值至少有一个)

var i = values.length - 1;
if(i > -1) {
    do {
        process(values);
    }while(--i >= 0);
}
1
2
3
4
5
6
在ES6中 使用 for…of 更加方便, 可以结合Object.keys()和Object.values()遍历对象
多个变量声明
var i = 1;
var j = "hello";
var arr = [1,2,3];
var now = new Date();
1
2
3
4
优化

var i = 1,
    j = "hello",
    arr = [1,2,3],
    now = new Date();
1
2
3
4
var name = values;
i++;
1
2
优化

var name = values[i++];
1
尽量使用字面量的形式来创建我们的数组和对象

var a = [1, "hello", 45];
var o = {
    name : "bill",
    age : 13
};
---------------------
转载,仅作分享,侵删
作者:hi修修
原文:https://blog.csdn.net/li522021642/article/details/81281295


1 个回复

倒序浏览
奈斯
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马