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 提交和设置表单的值
Dec 19 Javascript
S2SH整合JQuery+Ajax实现登录验证功能实现代码
Jan 30 Javascript
Extjs 3.3切换tab隐藏相应工具栏出现空白解决
Apr 02 Javascript
jquery ajax应用中iframe自适应高度问题解决方法
Apr 12 Javascript
动态加载iframe时get请求传递中文参数乱码解决方法
May 07 Javascript
js实现接收表单的值并将值拼在表单action后面的方法
Nov 23 Javascript
深入浅析JavaScript中的RegExp对象
Sep 18 Javascript
react-native中ListView组件点击跳转的方法示例
Sep 30 Javascript
vue的toast弹窗组件实例详解
May 14 Javascript
小程序如何自主实现拦截器的示例代码
Nov 04 Javascript
JavaScript异步操作的几种常见处理方法实例总结
May 11 Javascript
js实现直播点击飘心效果
Aug 19 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 include加载文件两种方式效率比较
2010/08/08 PHP
基于MySQL到MongoDB简易对照表的详解
2013/06/03 PHP
探讨:如何使用PhpDocumentor生成文档
2013/06/25 PHP
wamp安装后自定义配置的方法
2014/08/23 PHP
php两种无限分类方法实例
2015/04/21 PHP
php通过baihui网API实现读取word文档并展示
2015/06/22 PHP
Yii2 GridView实现列表页直接修改数据的方法
2016/05/16 PHP
zShowBox 图片放大展示jquery版 兼容性
2011/09/24 Javascript
jquery简单实现鼠标经过导航条改变背景图
2013/12/17 Javascript
JavaScript更改原始对象valueOf的方法
2015/03/19 Javascript
jquery实现图片随机排列的方法
2015/05/04 Javascript
使用JavaScript的AngularJS库编写hello world的方法
2015/06/23 Javascript
深入理解JS函数的参数(arguments)的使用
2016/05/28 Javascript
微信小程序之购物车功能
2020/09/23 Javascript
Angular实现预加载延迟模块的示例
2017/10/12 Javascript
vue-cli项目配置多环境的详细操作过程
2018/10/30 Javascript
记一次Vue.js混入mixin的使用(分权限管理页面)
2019/04/17 Javascript
浅谈layui 绑定form submit提交表单的注意事项
2019/10/25 Javascript
[48:26]VGJ.S vs infamous Supermajor 败者组 BO3 第二场 6.4
2018/06/05 DOTA
关于python中plt.hist参数的使用详解
2019/11/28 Python
CSS3中的display:grid,网格布局介绍
2019/10/30 HTML / CSS
如何用canvas实现在线签名的示例代码
2018/07/10 HTML / CSS
Clarks鞋法国官方网站:英国其乐鞋品牌
2018/02/11 全球购物
ghd法国官方网站:英国最受欢迎的美发工具品牌
2019/04/18 全球购物
文员岗位职责范本
2014/03/08 职场文书
三八红旗集体先进事迹材料
2014/05/22 职场文书
社区助残日活动总结
2014/08/29 职场文书
四风问题对照检查材料思想汇报
2014/10/07 职场文书
2014年库房工作总结
2014/11/26 职场文书
大学团日活动总结书
2015/05/11 职场文书
治庸问责工作总结
2015/08/11 职场文书
毕业设计工作总结
2015/08/14 职场文书
《全神贯注》教学反思
2016/02/22 职场文书
用python画城市轮播地图
2021/05/28 Python
Python中常见的反爬机制及其破解方法总结
2021/06/10 Python
python 网络编程要点总结
2021/06/18 Python