浅谈js算法和流程控制


Posted in Javascript onDecember 29, 2016

代码整体结构是执行速度的决定因素之一。 代码量少不一定运行速度快, 代码量多也不一定运行速度慢。

性能损失与代码组织方式和具体问题解决办法直接相关。

倒序循环可以提高性能,如:

for (var i=items.length; i--; ){
 process(items[i]);
}

控制件与 true 值进行比较,任何非零数字自动强制转换为 true,而零等同于 false。实际上,控制条件已经从两次比较(迭代少于总数吗?它等于 true 吗?)减少到一次比较(它等于 true 吗?)。将每个迭代中两次比较减少到一次可以大幅度提高循环速度。

减少迭代次数:达夫循环。在循环次数较多时可以有效提高循环速度。

查表法可以减少条件判断数量。当有大量离散值需要测试时,if-else 和 switch 都比使用查表法要慢得多。在 JavaScript 中查表法可使用数组或者普通对象实现,查表法访问数据比 if-else 或者 switch 更快,特别当条件体的数目很大时。

制表可以减少重复计算。通过缓存先前计算结果为后续计算所重复使用,避免了重复工作。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
javascript面向对象之二 命名空间
Feb 08 Javascript
分享2个jQuery插件--jquery.fileupload与artdialog
Dec 26 Javascript
《JavaScript DOM 编程艺术》读书笔记之JavaScript 语法
Jan 09 Javascript
Jquery中基本选择器用法实例详解
May 18 Javascript
JavaScript动态生成二维码图片
Apr 20 Javascript
Javascript 判断两个IP是否在同一网段实例代码
Nov 28 Javascript
轻松理解Javascript变量的相关问题
Jan 20 Javascript
Angular2安装angular-cli
May 21 Javascript
详解Node项目部署到云服务器上
Jul 12 Javascript
react native 仿微信聊天室实例代码
Sep 17 Javascript
JS中的变量作用域(console版)
Jul 18 Javascript
React实现动效弹窗组件
Jun 21 Javascript
canvas学习之API整理笔记(二)
Dec 29 #Javascript
Node.js复制文件的方法示例
Dec 29 #Javascript
详解微信小程序——自定义圆形进度条
Dec 29 #Javascript
JS作用域深度解析
Dec 29 #Javascript
javascript中的深复制详解及实例分析
Dec 29 #Javascript
canvas学习之API整理笔记(一)
Dec 29 #Javascript
Javascript Function.prototype.bind详细分析
Dec 29 #Javascript
You might like
DOTA2 6.87版本后新眼位详解攻略
2020/04/20 DOTA
优化NFR之一 --MSSQL Hello Buffer Overflow
2006/10/09 PHP
jquery数组过滤筛选方法grep()简介
2014/06/06 Javascript
谈谈基于iframe、FormData、FileReader三种无刷新上传文件的方法
2015/12/03 Javascript
js实现ctrl+v粘贴上传图片(兼容chrome、firefox、ie11)
2016/03/09 Javascript
JavaScript实现图片自动加载的瀑布流效果
2016/04/11 Javascript
jQuery EasyUI右键菜单实现关闭标签/选项卡
2016/10/10 Javascript
解决nodejs中使用http请求返回值为html时乱码的问题
2017/02/18 NodeJs
js实现登录与注册界面
2017/11/01 Javascript
vue 中directive功能的简单实现
2018/01/05 Javascript
vue2.0学习之axios的封装与vuex介绍
2018/05/28 Javascript
React Router V4使用指南(精讲)
2018/09/17 Javascript
vue-cli 3.0 自定义vue.config.js文件,多页构建的方法
2018/09/19 Javascript
移动端底部导航固定配合vue-router实现组件切换功能
2019/06/13 Javascript
js String.prototype.trim字符去前后空格的扩展
2020/08/23 Javascript
ES5 模拟 ES6 的 Symbol 实现私有成员功能示例
2020/05/06 Javascript
Python多进程通信Queue、Pipe、Value、Array实例
2014/11/21 Python
Python挑选文件夹里宽大于300图片的方法
2015/03/05 Python
合并百度影音的离线数据( with python 2.3)
2015/08/04 Python
django轻松使用富文本编辑器CKEditor的方法
2017/03/30 Python
Python3网络爬虫中的requests高级用法详解
2019/06/18 Python
PyCharm 配置远程python解释器和在本地修改服务器代码
2019/07/23 Python
基于keras输出中间层结果的2种实现方式
2020/01/24 Python
python Django 反向访问器的外键冲突解决
2020/05/20 Python
基于python计算滚动方差(标准差)talib和pd.rolling函数差异详解
2020/06/08 Python
python3.6.8 + pycharm + PyQt5 环境搭建的图文教程
2020/06/11 Python
基于CSS3制作立体效果导航菜单
2016/01/12 HTML / CSS
amazeui页面分析之登录页面的示例代码
2020/08/25 HTML / CSS
如何使用canvas绘制可移动网格的示例代码
2020/12/14 HTML / CSS
达拉斯牛仔官方商店:Dallas Cowboys Pro Shop
2018/02/10 全球购物
铭万公司.net面试题笔试题
2014/07/20 面试题
电脑销售顾问自荐信
2014/01/29 职场文书
2014年信访维稳工作总结
2014/12/08 职场文书
商业计划书之服装
2019/09/09 职场文书
52条SQL语句教你性能优化
2021/05/25 MySQL
spring boot中nativeQuery的用法
2021/07/26 Java/Android