JavaScript中如何优化算法和流程控制
2017-11-23 22:40
309 查看
1、循环
1)循环类型的选择:for、while、do-while、for-in
除了for-in循环之外,其他循环类型差不多。除非要迭代一个属性数量未知的对象,否则应避免使用for-in循环。
2)减少迭代的工作量:
(1)减少对象成员及数组项的查找次数。对于item.length,使用局部变量对其缓存,速度可以快25%以上 ;
(2)倒序循环:此时,每个控制条件只需简单与0进行比较,倒序循环的运行速度比原版要快50%~60%;
2、条件语句
1)if-else对比switch:
条件数量大,越倾向于使用switch而不是if-else;
2)优化if-else:
(1)确保最有可能的条件放在首位;
(2)采用嵌套语句:二分法的性质
例如:
if (value<6) {
if(value<3){
if(value==0){
return res0
}else if(value==1){
return res1;
}else{
return res2
}
}else{
if(value==3){
return res3
}else if(value==4){
return res4;
}else{
return res5
}
}
}else{
if(value<8){
if(value==6){
return res6;
}else{
return res7
}
}else{
...
}
}
1)循环类型的选择:for、while、do-while、for-in
除了for-in循环之外,其他循环类型差不多。除非要迭代一个属性数量未知的对象,否则应避免使用for-in循环。
2)减少迭代的工作量:
(1)减少对象成员及数组项的查找次数。对于item.length,使用局部变量对其缓存,速度可以快25%以上 ;
(2)倒序循环:此时,每个控制条件只需简单与0进行比较,倒序循环的运行速度比原版要快50%~60%;
2、条件语句
1)if-else对比switch:
条件数量大,越倾向于使用switch而不是if-else;
2)优化if-else:
(1)确保最有可能的条件放在首位;
(2)采用嵌套语句:二分法的性质
例如:
if (value<6) {
if(value<3){
if(value==0){
return res0
}else if(value==1){
return res1;
}else{
return res2
}
}else{
if(value==3){
return res3
}else if(value==4){
return res4;
}else{
return res5
}
}
}else{
if(value<8){
if(value==6){
return res6;
}else{
return res7
}
}else{
...
}
}
相关文章推荐
- 持续讨论 javascript 如何控制优化页面 js 加载顺序
- 性能优化之算法和流程控制
- 高性能JavaScript笔记二(算法和流程控制、快速响应用户界面、Ajax)
- 高性能Javascript【四】算法和流程控制高性能Javascript【五】字符串和正则表达式
- 性能优化之算法和流程控制
- 高性能Javascript【四】算法和流程控制
- 【高性能JavaScript】读书笔记 - 算法和流程控制(一) - 08
- 【高性能JavaScript】读书笔记 - 算法和流程控制(二) - 09
- 性能优化之算法和流程控制
- Javascript性能优化(三) - 算法和流程控制优化
- 高性能javascript-算法和流程控制笔记
- js 性能优化之算法和流程控制
- JavaScript流程控制,关键是如何实现任务的顺序执行。
- javascript 性能分析:算法和流程控制
- 持续讨论 javascript 如何控制优化页面 js 加载顺序
- 性能优化之算法和流程控制
- 如何优化JavaScript脚本的性能(转载)
- 如何控制上传附件的大小?在没有上传到服务器上就能判断出来 - 用Applet(签名) + JavaScript在提交前先判断本地文件的大小。
- 如何优化JavaScript脚本的性能
- CI Weekly #2 | 如何优化开发流程,实现项目持续集成?