JavaScript开发时的五个小提示

作者:March 来源:三月的蚁穴 时间:2007-11-21 19:54:00 

原文:Five quick JavaScript tips

真是五个很quick的小提示:

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

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

2.可点击的都应该是链接

不要给除锚元素(<a>)以外的元素绑定click事件。这一点对于键盘用户很重要,因为他们在仅通过键盘获取元素焦点时会遇到困难。
March:不过个人感觉锚元素还是应该只用作链接,而一些功能性的操作(比如Google Reader的Mark all as new),最好还是用<span>来标注,accessibility的问题可以通过快捷键等方式解决。这样做可以更好的还原HTML元素的语义。

3.简单的for循环优化

在你写一个for循环时,有个很简单的技巧能够提高性能。
for ( var i = 0; i < elements.length; ++i )
使用下面的语句代替上面的:
for ( var i = 0, j = elements.length; i < j; ++i )
这样可以把元素的个数(elements.length的值)储存在一个变量j中,这样就不必在每次循环时都计算一遍元素的个数。

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

尤其是对于短小的函数,创建一个匿名函数会比使用一个命名函数的引用更具可读性。
anchor.onclick = function() { map.goToPosition( home ); return false; }
March:在较复杂的JavaScript开发时还是使用命名函数效率更高。

5.使用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
0
投稿

猜你喜欢

  • php调用百度人脸识别接口查询数据库人脸信息实现验证登录功能

    2024-03-23 13:36:44
  • 交互设计师的尴尬-我的强项是什么?

    2008-12-29 14:00:00
  • 解决Python spyder显示不全df列和行的问题

    2021-06-23 00:15:47
  • Python常用内置函数的使用教程详解

    2021-11-11 21:23:50
  • perl几个文件操作例子

    2022-03-23 09:24:09
  • Python实例方法与类方法和静态方法介绍与区别分析

    2023-06-18 05:59:53
  • Python模拟登录的多种方法(四种)

    2023-06-11 21:08:45
  • 简易CSS相册源代码

    2008-04-18 12:28:00
  • asp程序定义变量比不定义变量速度快一倍

    2012-12-04 20:06:32
  • pytorch安装及环境配置的完整过程

    2023-06-19 23:53:20
  • Python使用pandas和xlsxwriter读写xlsx文件的方法示例

    2022-05-14 00:35:25
  • Go语言Grpc Stream的实现

    2023-08-07 06:19:23
  • matplotlib.pyplot画图并导出保存的实例

    2022-10-02 13:32:26
  • python批量替换页眉页脚实例代码

    2022-09-09 11:02:29
  • pandas温差查询案例的实现

    2023-07-16 07:56:15
  • Python使用Plotly绘制常见5种动态交互式图表

    2023-06-08 06:27:59
  • 社区版pycharm创建django项目的方法(pycharm的newproject左侧没有项目选项)

    2022-05-26 04:58:36
  • Python排序搜索基本算法之冒泡排序实例分析

    2023-10-18 19:27:26
  • PyTorch 1.0 正式版已经发布了

    2021-12-09 23:54:57
  • Python中pygame的mouse鼠标事件用法实例

    2021-02-09 12:21:41
  • asp之家 网络编程 m.aspxhome.com