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请求
- 尽量不使用cookie
- 传参尽量传JSON
- 能合并的接口尽量合并