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 相关文章推荐
在你的网页中嵌入外部网页的方法
Apr 02 Javascript
Ext 今日学习总结
Sep 19 Javascript
判断用户的在线状态 onbeforeunload事件
Mar 05 Javascript
JavaScript中的变量声明早于赋值分析
Mar 01 Javascript
JavaScript中获取Radio被选中的值
Nov 11 Javascript
原生JS实现《别踩白块》游戏(兼容IE)
Feb 20 Javascript
微信小程序 template模板详解及实例代码
Mar 09 Javascript
vue 和vue-touch 实现移动端左右导航效果(仿京东移动站导航)
Apr 22 Javascript
使用SVG基本操作API的实例讲解
Sep 14 Javascript
vue自定义指令的创建和使用方法实例分析
Dec 04 Javascript
vue+iview/elementUi实现城市多选
Mar 28 Javascript
详解vue 在移动端体验上的优化解决方案
May 20 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
百万级别知乎用户数据抓取与分析之PHP开发
2015/09/28 PHP
jquery ajax提交整个表单元素的快捷办法
2013/03/27 Javascript
使用纯javascript实现经典扫雷游戏
2015/04/23 Javascript
JavaScript实现DIV层拖动及动态增加新层的方法
2015/05/12 Javascript
jquery插件jquery.dragscale.js实现拖拽改变元素大小的方法(附demo源码下载)
2016/02/25 Javascript
js仿搜狐视频记录片列表展示效果
2020/05/30 Javascript
bootstrap paginator分页前后台用法示例
2017/06/17 Javascript
MUI实现上拉加载和下拉刷新效果
2017/06/30 Javascript
Vue2.0中三种常用传值方式(父传子、子传父、非父子组件传值)
2018/08/16 Javascript
mpvue微信小程序多列选择器用法之省份城市选择的实现
2019/03/07 Javascript
Vue实现商品分类菜单数量提示功能
2019/07/26 Javascript
vue导入.md文件的步骤(markdown转HTML)
2020/12/31 Vue.js
微信小程序tab左右滑动切换功能的实现代码
2021/02/08 Javascript
[01:14:34]DOTA2上海特级锦标赛C组资格赛#2 LGD VS Newbee第一局
2016/02/28 DOTA
Python实现Linux下守护进程的编写方法
2014/08/22 Python
python difflib模块示例讲解
2017/09/13 Python
Python基于递归算法实现的汉诺塔与Fibonacci数列示例
2018/04/18 Python
Python使用requests提交HTTP表单的方法
2018/12/26 Python
python的内存管理和垃圾回收机制详解
2019/05/18 Python
PyQt5响应回车事件的方法
2019/06/25 Python
如何通过50行Python代码获取公众号全部文章
2019/07/12 Python
在Sublime Editor中配置Python环境的详细教程
2020/05/03 Python
Python求解排列中的逆序数个数实例
2020/05/03 Python
python接口自动化之ConfigParser配置文件的使用详解
2020/08/03 Python
使用CSS3的::selection改变选中文本颜色的方法
2015/09/29 HTML / CSS
美国在线眼镜商城:Eyeglasses.com
2017/06/26 全球购物
盛大二次面试题
2016/11/18 面试题
母亲节演讲稿范文
2014/01/02 职场文书
大学四年个人自我小结
2014/03/05 职场文书
青蓝工程实施方案
2014/03/27 职场文书
幼儿园老师寄语
2014/04/03 职场文书
运动会演讲稿100字
2014/08/25 职场文书
个人欠款协议书范本2014
2014/11/02 职场文书
停电通知范文
2015/04/16 职场文书
2019年七夕情人节浪漫祝福语大全!
2019/08/08 职场文书
python spilt()分隔字符串的实现示例
2021/05/21 Python