JavaScript效率调优经验


Posted in Javascript onJune 04, 2009

1. 将循环次数的定义放到循环体外:这点好像所有的语言都是一样的,在100个元素以上时效果越来越明显。也就是说将for(var i=0;i<arrData.length;i++)修改为for(var i=0,len=arrData.length;i<len;i++)会很大地提高性能,因为它避免了每循环一次计算一下length的操作。另外,有老外宣称,降序循环速度更快,即for(var i=arrData.length-1;i>=0;i--)。本人测试后发现和升序循环相比效率差异不大。
2. 将多层对象引用改为更短路径的引用:JavaScript中,这个问题非常明显,如proposalNo域var proposalNoField = fm.proposalNo。在一个循环中(100次以上)使用proposalNoField.value和fm.proposalNo.value的区别非常巨大。所以尽量通过使用中间变量的方式来缩短访问路径。
3. 第三方JavaScript包的影响:由于JavaScript支持原型,如prototype.js就修改了Array的一些行为,有时自己写的代码是没有问题的,但是如果被修改了原型,则也会发生问题,如prototype.js的1.4版本就存在Bug,某些情况下的数组排序会导致死循环。

Javascript 相关文章推荐
js如何实现点击标签文字,文字在文本框出现
Aug 05 Javascript
jQuery实现图片上传和裁剪插件Croppie
Nov 29 Javascript
十大热门的JavaScript框架和库
Mar 21 Javascript
vuex中使用对象展开运算符的示例
Sep 25 Javascript
Vue 将后台传过来的带html字段的字符串转换为 HTML
Mar 29 Javascript
解决vue props 拿不到值的问题
Sep 11 Javascript
javaScript实现游戏倒计时功能
Nov 17 Javascript
Node.js如何对SQLite的async/await封装详解
Feb 14 Javascript
微信小程序里引入SVG矢量图标的方法
Sep 20 Javascript
vue实现跳转接口push 转场动画示例
Nov 01 Javascript
解决vue 给window添加和移除resize事件遇到的坑
Jul 21 Javascript
vue实现图片裁剪后上传
Dec 16 Vue.js
cookie丢失问题(认证失效) Authentication (用户验证信息)也会丢失
Jun 04 #Javascript
javascript 常用方法总结
Jun 03 #Javascript
Javascript 获取字符串字节数的多种方法
Jun 02 #Javascript
javascript HTMLEncode HTMLDecode的完整实例(兼容ie和火狐)
Jun 02 #Javascript
Javascript String对象扩展HTML编码和解码的方法
Jun 02 #Javascript
几个常用的JavaScript字符串处理函数 - split()、join()、substring()和indexOf()
Jun 02 #Javascript
慎用 somefunction.prototype 分析
Jun 02 #Javascript
You might like
用PHP制作静态网站的模板框架(二)
2006/10/09 PHP
一个好用的分页函数
2006/11/16 PHP
PHP实现删除非站内外部链接实例代码
2014/06/17 PHP
PHP中shuffle数组值随便排序函数用法
2014/11/21 PHP
PHP小程序支付功能完整版【基于thinkPHP】
2019/03/26 PHP
js 获取浏览器高度和宽度值(多浏览器)
2009/09/02 Javascript
jQuery select操作控制方法小结
2010/05/26 Javascript
js 获取input点选按钮的值的方法
2014/04/14 Javascript
Javascript设计模式之观察者模式的多个实现版本实例
2015/03/03 Javascript
JavaScript中Math.SQRT2属性的使用详解
2015/06/14 Javascript
jquery实现表格隔行换色效果
2015/11/19 Javascript
jquery通过name属性取值的简单实现方法
2016/06/20 Javascript
BootStrapValidator校验方式
2016/12/19 Javascript
Bootstrap fileinput组件封装及使用详解
2017/03/10 Javascript
js简单实现网页换肤功能
2017/04/07 Javascript
使用yeoman构建angular应用的方法
2017/08/14 Javascript
webstorm添加*.vue文件支持
2018/05/08 Javascript
vue百度地图 + 定位的详解
2019/05/13 Javascript
JavaScript中变量提升机制示例详解
2019/12/27 Javascript
一看就会的vuex实现登录验证(附案例)
2020/01/09 Javascript
《javascript设计模式》学习笔记五:Javascript面向对象程序设计工厂模式实例分析
2020/04/08 Javascript
基于小程序请求接口wx.request封装的类axios请求
2020/07/02 Javascript
Python进阶-函数默认参数(详解)
2017/05/18 Python
HTML中使用python屏蔽一些基本功能的方法
2017/07/07 Python
使用Kivy将python程序打包为apk文件
2017/07/29 Python
Python实现批量修改图片格式和大小的方法【opencv库与PIL库】
2018/12/03 Python
django多种支付、并发订单处理实例代码
2019/12/13 Python
Tensorflow训练MNIST手写数字识别模型
2020/02/13 Python
Yummie官方网站:塑身衣和衣柜必需品
2019/10/29 全球购物
Kickers鞋英国官网:男士、女士和儿童鞋
2021/03/08 全球购物
敏捷开发的主要原则都有哪些
2015/04/26 面试题
中央空调节能方案
2014/06/15 职场文书
森林防火标语
2014/06/23 职场文书
清洁工个人工作总结
2015/03/05 职场文书
施工现场安全管理制度
2015/08/05 职场文书
PHP判断是否是json字符串
2021/04/01 PHP