想必大家对于jQuery这个最流行的JavaScript类库都不陌生,而且只要是前端开发人员肯定或多或少的使用或者接触过,在今天的这篇文章中,我 们将介绍一些书写高质量jQuery代码的原则,我们不单单会告诉你如何去书写,也会告诉你为什么这样书写,希望大家会觉得有所帮助。

注意定义jQuery变量的时候添加var关键字

这个不仅仅是jQuery,所有JavaScript开发过程中,都需要注意,请一定不要定义成如下:

$loading = $('#loading'); //这个是全局定义,不知道哪里位置倒霉引用了相同的变量名,就会郁闷至死的

如果你定义成这样的话,运气好,可能没有任何问题,或者出现一个绝对会让你debug一周,然后骂娘一个月的问题。

请使用一个var来定义变量

如果你使用多个变量的话,请如下方式定义:

var page = 0,$loading = $('#loading'),$body = $('body');

不要给每一个变量都添加一个var关键字,除非你有严重的强迫症。

定义jQuery变量

申明或者定义变量的时候,请记住如果你定义的是jQuery的变量,请添加一个$符号到变量前,如下:

var $loading = $('#loading');

这里定义成这样的好处在于,你可以有效的提示自己或者其它阅读你代码的用户,这是一个jQuery的变量。

DOM操作请务必记住缓存(cache)

在jQuery代码开发中,我们常常需要操作DOM,DOM操作是非常消耗资源的一个过程,而往往很多人都喜欢这样使用jQuery:

$('#loading').html('完毕');
$('#loading').fadeOut();

代码没有任何问题,你也可以正常运行出结果,但是这里注意你每次定义并且调用$(‘#loading’)的时候,都实际创建了一个新的变量,如果你需要重用的话,记住一定要定义到一个变量里,这样可以有效的缓存变量内容,如下:

var $loading = $('#loading');
$loading.html('完毕');$loading.fadeOut();

这样性能会更好。

使用链式操作

上面那个例子,我们可以写的更简洁一些:

var $loading = $('#loading');
$loading.html('完毕').fadeOut();

这样是不是更省力气书写呢? 但是注意链式操作不要串的过多了,如果太多了,对于你自己的debug的眼力是一个巨大的挑战。

精简jQuery代码

尽量把一些代码都整合到一起,请勿这样编码:

// !!反面人物$button.click(function(){$target.css('width','50%');$target.css('border','1px solid #202020');$target.css('color','#fff');
});

应该这样书写:

$button.click(function(){$target.css({'width':'50%','border':'1px solid #202020','color':'#fff'});
});

避免使用全局类型的选择器

请勿如下方式书写:

$('.something > *');

这样书写更好:

$('.something').children();

不要叠加多个ID

请勿如下书写:

$('#something #children');

这样就够了:

$('#children');

多用逻辑判断||或者&&来提速

请勿如下书写:

if(!$something) {$something = $('#something');
}

这样书写性能更好:

$something= $something|| $('#something');

尽量使用更少的代码

与其这样书写:

if(string.length > 0){..}

不如这样书写:

if(string.length){..}

尽量使用 .on方法

如果你使用比较新版本的jQuery类库的话,请使用.on,其它任何方法都是最终使用.on来实现的。

尽量使用最新版本的jQuery

最新版本的jQuery拥有更好的性能,但是最新的版本可能不支持ie6/7/8,所以大家需要自己针对实际情况选择。

尽量使用原生的JavaScript

如果使用原生的JavaScript也可以实现jQuery提供的功能的话,推荐使用原生的JavaScript来实现。

如何书写高质量的jQuery代码相关推荐

  1. 怎么书写高质量jQuery代码

    众所周知,jQuery现在已经非常流行,百度新首页中也已经开始使用jQuery,今天总结下怎么书写更好的jQuery代码使jQuery代码更好.更快的执行,希望本篇jQuery教程一改大家以前不合理的 ...

  2. HTML Inspector – 帮助你编写高质量的 HTML 代码

    HTML Inspector 是一款代码质量检测工具,帮助你编写更优秀的 HTML 代码.HTML Inspector 使用 JavaScript 编写,运行在浏览器中,是最好的 HTML 代码检测工 ...

  3. ​如何编写高质量的C#代码(一)

    如何编写高质量的C#代码(一) 从"整洁代码"谈起 一千个读者,就有一千个哈姆雷特,代码质量也同样如此. 想必每一个对于代码有追求的开发者,对于"高质量"这个词 ...

  4. 写一个sql实现以下查询结果_书写高质量SQL的30条建议

    以下文章来源:后端程序员必备:书写高质量SQL的30条建议 1.查询SQL尽量不要使用select *,而是select具体字段. 反例子: select * from employee; 正例子: ...

  5. html空格代码_编写灵活、稳定、高质量的CSS代码的规范(推荐收藏)

    01 编写灵活.稳定.高质量的HTML代码的规范 一.唯一定律 无论有多少人共同参与同一项目,一定要确保每一行代码都像是唯一个人编写的. 二.HTML 2.1 语法 (1)用两个空格来代替制表符(ta ...

  6. [转]后端程序员必备:书写高质量SQL的30条建议

    以下文章来源于捡田螺的小男孩 ,作者捡田螺的小男孩 转载:<后端程序员必备:书写高质量SQL的30条建议> 前言 本文将结合实例demo,阐述30条有关于优化SQL的建议,多数是实际开发中 ...

  7. 高质量的工程代码为什么难写

    之所以想起写这篇文章,是因为最近看到的一个著名的开源项目在内部使用时的各种问题,不得不说,很多的开源的东西思想是不错的,但离真正工程化都有不小的距离,所以没什么商业公司采用的开源产品如果要引入的话一定 ...

  8. 老司机写的java代码_老司机告诉你高质量的Java代码是怎么练成的?

    一提起程序员,首先想到的一定是"码农",对,我们是高产量的优质"码农",我们拥有超跃常人的逻辑思维以及不走寻常路的分析.判别能力,当然,我们也有良好的编码规范, ...

  9. 如何编写高质量的C#代码(一)

    从"整洁代码"谈起 一千个读者,就有一千个哈姆雷特,代码质量也同样如此. 想必每一个对于代码有追求的开发者,对于"高质量"这个词,或多或少都有自己的一丝理解.当 ...

最新文章

  1. 一个可以卷起来的蓝牙键盘,简直是办公码字神器!
  2. Python基础教程:为元组中的每一个元素命名
  3. MyBatis之PageHelper分页操作
  4. 【Apache JMeter】JMeter接口压测实例
  5. C# 显式接口成员实现
  6. layabox2:打地鼠(地鼠显示/停留/受击/消失)
  7. python 计算时间_python的时间使用和时间计算
  8. 【QT学习之路】Charts的简单使用
  9. 传智播客总裁黎活明“传智专修学院成立暨揭牌仪式”演讲实录
  10. matlab科研绘图模板,直接奉上源代码!
  11. 【 react】react实现页面后退按钮(goBack())
  12. python eel 多线程_使用EEL将数据从Python发送到Javascript - javascript
  13. 超好用的图标搜索网站
  14. android 隐藏文本,Android使用facebook隐藏库加密plaint文本
  15. 面试SEO岗位时会问的问题有哪些?SEO面试官提问
  16. MySQL如何判断不为空
  17. 固定收益证券读书笔记(一)
  18. dxwebsetup 解决一些dll缺少的问题
  19. HDU2099 整除的尾数
  20. ps命令显示用户名而不是uid

热门文章

  1. fasttext在二分类问题中,recall与precision值是相同的,why
  2. matlab命名文件保存在哪里,用Matlab给整个文件夹下的文件分别重命名
  3. 二十年后我发明了保姆机器人作文_五年级作文:二十年后的家乡(张羽彤)
  4. 编译linux内核成vmlinuz,编译一个内核 - no bzImage/vmlinuz生成
  5. C#中使用SoundPlayer播放音频文件(wav文件)
  6. Java开发中模拟接口工具moco的使用
  7. C#中使用StreamReader实现文本文件的读取与写入
  8. MyBatisPlus3.x中使用代码生成器(全注释)
  9. Python中使用PIL快速实现二值图
  10. SSM中实现分页与JUnit单元测试