高性能的js代码

162 阅读1分钟

1.作用域

function dome(){
let p= document.getElementByTagName("p");    for(let i = 0; i <= imgs.length; i++) {     p[i].title = document.title + "image" + i;  
     // docment为全局属性,每执行一次for循环都会在全局寻找document,
        一旦循环次数很多,那么就严重影响了性能
    }
let doc = document
  for(let i = 0; i <= imgs.length; i++) {    
     p[i].title = document.title + "image" + i;  
     // 把document的引用保存在一个局部变量
  }}


2.循环

for(var i = 0; i <=imgs.length; i++) {
    //执行代码
}//每次执行循环都会重新计算imgs的长度
var length = imgs.length;    //把imgs的长度保存在一个变量中
  for(var i = 0; i <=length; i++) {
     //执行代码
} 


3.判断语句

使用switch替代if-else,当达到条件时,switch会跳出循环,不再往下执行

while、do-whlie、for 循环的性能相似,无所谓选择谁 相对性能来说for-in是最浪费性能的一种(因为每次迭代都需要搜索原型的属性),除非你要遍历一个属性不知道的对象,否则不要用。 

 switch比if-else要快

 forEach是基于函数的迭代,虽然很便利,但是基于函数的迭代是普通基于循环的 八倍


4.少语句

var name = "Bill";
var  age = 10;
var  sex = "man";
//修改:
var name = "Bill",
    age = 10,
    sex = "man";


var age = values[i];
i++;
//修改:
var age = values[i++];


5.定时器

使用定时器是无限加载时一定要记住离开面面时清除定时器


6.HTTP请求

  1. 尽量不使用cookie
  2. 传参尽量传JSON
  3. 能合并的接口尽量合并