浅谈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中的undefined 与 null 的区别  补充篇
Mar 17 Javascript
dojo学习第一天 Tab选项卡 实现
Aug 28 Javascript
jquery blockUI 遮罩不能消失与不能提交的解决方法
Sep 17 Javascript
jquery的ajaxSubmit()异步上传图片并保存表单数据演示代码
Jun 04 Javascript
js 弹出框只弹一次(二次修改之后的)
Nov 26 Javascript
使用jquery选择器如何获取父级元素、同级元素、子元素
May 14 Javascript
举例讲解jQuery对DOM元素的向上遍历、向下遍历和水平遍历
Jul 07 Javascript
vue.js如何更改默认端口号8080为指定端口的方法
Jul 14 Javascript
基于BootStrap实现简洁注册界面
Jul 20 Javascript
详解Nuxt.js Vue服务端渲染摸索
Feb 08 Javascript
Nuxt升级2.0.0时出现的问题(小结)
Oct 08 Javascript
解决vue使用vant轮播组件swipe + flex时文字抖动问题
Jan 07 Vue.js
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
IIS6+PHP5+MySQL5+Zend Optimizer+phpMyAdmin安装配置图文教程 2009年
2009/06/08 PHP
php 用checkbox一次性删除多条记录的方法
2010/02/23 PHP
php函数之子字符串替换 str_replace
2011/03/23 PHP
通过table标签,PHP输出EXCEL的实现方法
2013/07/24 PHP
php验证session无效的解决方法
2014/11/04 PHP
PHP格式化MYSQL返回float类型的方法
2016/03/30 PHP
php+html5+ajax实现上传图片的方法
2016/05/14 PHP
Yii2.0多文件上传实例说明
2017/07/24 PHP
laravel withCount 统计关联数量的方法
2019/10/10 PHP
有关javascript的性能优化 (repaint和reflow)
2013/04/12 Javascript
jquery判断复选框是否选中进行答题提示特效
2015/12/10 Javascript
基于BootStrap与jQuery.validate实现表单提交校验功能
2016/12/22 Javascript
jQuery实现手机上输入后隐藏键盘功能
2017/01/04 Javascript
80%应聘者都不及格的JS面试题
2017/03/21 Javascript
nodejs构建本地web测试服务器 如何解决访问静态资源问题
2017/07/14 NodeJs
最全正则表达式总结:验证QQ号、手机号、Email、中文、邮编、身份证、IP地址等
2017/08/16 Javascript
微信小程序实现自上而下字幕滚动
2018/07/14 Javascript
swiper在angularjs中使用循环轮播失效的解决方法
2018/09/27 Javascript
BootStrap模态框闪退问题实例代码详解
2018/12/10 Javascript
详解Vue 如何监听Array的变化
2019/06/06 Javascript
JavaScript实现秒杀时钟倒计时
2019/09/29 Javascript
[00:32]2018DOTA2亚洲邀请赛OpTic出场
2018/04/03 DOTA
python自动化测试之从命令行运行测试用例with verbosity
2014/09/28 Python
使用Python求解最大公约数的实现方法
2015/08/20 Python
django中的setting最佳配置小结
2017/11/21 Python
基于Python获取城市近7天天气预报
2019/11/26 Python
英国最大的纸工艺品商店:CraftStash
2018/12/01 全球购物
初二政治教学反思
2014/01/12 职场文书
销售辞职报告范文
2014/01/12 职场文书
淮阳太昊陵导游词
2015/02/10 职场文书
致地震灾区的慰问信
2015/03/23 职场文书
2015小学教师年度考核工作总结
2015/05/12 职场文书
《曹冲称象》教学反思
2016/02/20 职场文书
Java 数据结构七大排序使用分析
2022/04/02 Java/Android
Python+Selenium实现抖音、快手、B站、小红书、微视、百度好看视频、西瓜视频、微信视频号、搜狐视频、一点号、大风号、趣头条等短视频自动发布
2022/04/13 Python
前端canvas中物体边框和控制点的实现示例
2022/08/05 Javascript