JavaScript开发时的五个注意事项


Posted in Javascript onDecember 08, 2007

只在<form>元素上使用submit事件

如果要在form中绑定事件处理程序时,应该只在<form>元素上绑定submit事件,而不是给提交按钮绑定click事件。
March:这个方式固然很好,但是,公司开发时使用了Web Flow,一个页面就一个大form,而里面可能有若干个提交按钮,所以不得不把部分事件处理程序绑定在了提交按钮的click事件上。

可点击的都应该是链接

不要给除锚元素(<a>)以外的元素绑定click事件。这一点对于键盘用户很重要,因为他们在仅通过键盘获取元素焦点时会遇到困难。

March:不过个人感觉锚元素还是应该只用作链接,而一些功能性的操作(比如Google Reader的Mark all as new),最好还是用<span>来标注,accessibility的问题可以通过快捷键等方式解决。这样做可以更好的还原HTML元素的语义。

简单的for循环优化

在你写一个for循环时,有个很简单的技巧能够提高性能。

for ( var i = 0; i < elements.length; ++i ) 
使用下面的语句代替上面的: 
for ( var i = 0, j = elements.length; i < j; ++i ) 

这样可以把元素的个数(elements.length的值)储存在一个变量j中,这样就不必在每次循环时都计算一遍元素的个数。

用匿名函数来作为事件处理程序

尤其是对于短小的函数,创建一个匿名函数会比使用一个命名函数的引用更具可读性。

anchor.onclick = function() { map.goToPosition( home ); return false; } 

March:在较复杂的JavaScript开发时还是使用命名函数效率更高。

使用Array.join代替字符串连接(concatenating strings)

在将很多字符串、变量等连接成一个很长的字符串时,将所有字符串和变量放入一个数组,然后用join方法将他们组成一个长字符串,这样无论从代码可读性还是从性能上都更胜于字符串连接。

var text = 'There are' + elements.length + 'members in the elements array.';  

var text = ['There are', elements.length, 'members in the elements array.'].join(' ');
Javascript 相关文章推荐
可简单避免的三个JS发布错误的详细介绍
Aug 02 Javascript
jquery判断复选框选中状态以及区分attr和prop
Dec 18 Javascript
Vue.js每天必学之方法与事件处理器
Sep 06 Javascript
vue.js通过自定义指令实现数据拉取更新的实现方法
Oct 18 Javascript
JS实现异步上传压缩图片
Apr 22 Javascript
3分钟掌握常用的JS操作JSON方法总结
Apr 25 Javascript
JavaScript简介_动力节点Java学院整理
Jun 26 Javascript
解决vue this.$forceUpdate() 处理页面刷新问题(v-for循环值刷新等)
Jul 26 Javascript
详解Require.js与Sea.js的区别
Aug 05 Javascript
深入浅析js原型链和vue构造函数
Oct 25 Javascript
微信小程序官方动态自定义底部tabBar的例子
Sep 04 Javascript
vuex分模块后,实现获取state的值
Jul 26 Javascript
JS的递增/递减运算符和带操作的赋值运算符的等价式
Dec 08 #Javascript
javascript数组使用调用方法汇总
Dec 08 #Javascript
不间断滚动JS打包类,基本可以实现所有的滚动效果,太强了
Dec 08 #Javascript
项目实践之javascript技巧
Dec 06 #Javascript
[原创]后缀就扩展名为js的文件是什么文件
Dec 06 #Javascript
JavaScript 节点操作 以及DOMDocument属性和方法
Dec 06 #Javascript
javascript 常用关键字列表集合
Dec 04 #Javascript
You might like
一个用mysql_odbc和php写的serach数据库程序
2006/10/09 PHP
php验证邮箱和ip地址最简单方法汇总
2015/10/30 PHP
基于PHP的微信公众号的开发流程详解
2020/08/07 PHP
jQuery EasyUI API 中文文档 搜索框
2011/09/29 Javascript
图标线性回归斜着移动到指定的位置
2013/08/16 Javascript
js获取html页面节点方法(递归方式)
2013/12/13 Javascript
VS2008中使用JavaScript调用WebServices
2014/12/18 Javascript
详解AngularJS中的表达式使用
2015/06/16 Javascript
Javascript获取随机数的实现方法
2016/06/22 Javascript
Vuejs第六篇之Vuejs与form元素实例解析
2016/09/05 Javascript
mui back 返回刷新页面的实例
2017/12/06 Javascript
使用webpack搭建react开发环境的方法
2018/05/15 Javascript
浅谈关于iview表单验证的问题
2018/09/29 Javascript
javascript实现文本框标签验证的实例代码
2018/10/14 Javascript
vue-router跳转时打开新页面的两种方法
2019/07/29 Javascript
Vue+ElementUI 中级联选择器Bug问题的解决
2020/07/31 Javascript
详细介绍Python语言中的按位运算符
2013/11/26 Python
Python中的exec、eval使用实例
2014/09/23 Python
python tensorflow基于cnn实现手写数字识别
2018/01/01 Python
Python内存读写操作示例
2018/07/18 Python
纯CSS3实现手风琴风格菜单具体步骤
2013/05/06 HTML / CSS
阿根廷网上配眼镜:SmartBuyGlasses阿根廷
2016/08/19 全球购物
Qoo10马来西亚:全球时尚和引领潮流的购物市场
2016/08/25 全球购物
维珍澳洲航空官网:Virgin Australia
2017/09/08 全球购物
跑步、骑行和铁人三项的高性能眼镜和服装:ROKA
2018/07/06 全球购物
expedia比利时:预订航班+酒店并省钱
2018/07/13 全球购物
美国床垫连锁店:Mattress Firm
2021/02/13 全球购物
硕士研究生自我鉴定
2013/11/08 职场文书
党员服务承诺书
2014/05/28 职场文书
社区法制宣传月活动总结
2015/05/07 职场文书
2015年控辍保学工作总结
2015/05/18 职场文书
贫困生证明范文
2015/06/16 职场文书
教师节感想
2015/08/11 职场文书
干货:我将这样书写我的演讲稿!
2019/05/09 职场文书
正则表达式拆分url实例代码
2022/02/24 Java/Android
Python如何加载模型并查看网络
2022/07/15 Python