2019独角兽企业重金招聘Python工程师标准>>>

前言

最近一直重构项目的前端代码,也参考了各种前端代码的最佳实践,目的是让前端的HTML,CSS,Javacript代码更符合标准,有更好的性能,更好的可维护性,尝到了重构后的甜头,也萌生了写这个系列博客的念头。前端代码有其固有的灵活性,这就导致了目前前端代码非常混乱的局面,本系列文章希望能起到抛砖引玉的作用,让更多的人重视前端代码的质量,编写更标准的前端代码。

本系列文章共有三篇,分别讨论HTML,CSS,Javascript,本篇将讨论Javascript。

javascript是灵活性非常高的一种脚本语言,使得用其实现的同样功能有多种多样的写法,那么在项目中如果没有统一的规范,就会造成javascript代码难以维护,随着项目的深入,性能j也越来越差,文件也越来越大。所以尽早制定统一的编码规范是非常必要的,下面是整理的一些javascript规范供大家参考。

(1)编码格式

好的编码格式,不同人有不同的看法,但是在同一个项目中一定要有统一的格式。下面是常用的编码格式:

1,缩进: 不使用tab(\0x09)缩进,以4个空格作为逻辑的缩进。

2,左花括号应该在行的结束,而不应该单独一行。应该一直使用花括号括起逻辑块,即使逻辑只有一行,应该也用花括号括起来,这样提高了代码的可读性。例如:

for (var i=0; i<100; i++) {       doSomething(i);   }  if (statement) {      doSomeThing;  } else {      doSomeThing;  } 

3,用单引号定义字符串。javascript中可以用单引号或者双引号定义字符串,但是因为习惯于在html中elements的属性值的定义使用双引号,而javascript中又经常包含html代码,所以字符串定义使用单引号也是方便于在字符串内部包含含有双引号的html代码。

var content = '<span id="spanid">…'; 

4,注释:如果注释不是占有多行,建议使用//,不推荐使用/**/,注释应该单独占用一行,而不是写在和代码相同一行的右边。

5,空格:空格的作用是提高代码的可读性,在函数参数的逗号后面使用一个空格,在操作符前后使用一个空格,

doSomething(myChar, 0, 1); while (x === y) 

6,分号:语句结束一定要使用分号,使用分号是为了在压缩js代码时不至于出现js的编译错误,因为压缩的时候是删除了所有的空格和回车符的。

(2)命名规则

遵循规范的命名规则,提高了代码的可读性,好的命名本身就是好的注释。

1,大小写:现在较流行javascript的面向对象编程,那么就会有公有或私有的概念,原则是公有接口的命名首字母大写,私有接口的命名首字母小写。

2,命名:禁止使用各种缩写,命名应该描述其意义,而不是描述其类型,禁止使用标识类型的前缀

不推荐

getWin  function doSomething(str,  integer) {       ... ...  }  function doSomething(strMessage,  intLength) {       ...  ...  } 

正确命名

getWindow function doSomething(message, length) { ... ... } 

(3)编程规范

javascript的编程规范关乎代码的性能,代码的简洁。

1,变量定义

变量定义使用关键字var。非必需,不要使用全局变量,这样可以减少不必要的变量定义查询。变量应该有个初始化的值,或者设置为null。避免使用关键字with,with的性能差。集中定义变量,减少代码量。

var counter = 0, empty = null; 

2,函数定义

函数定义应该在其使用之前。函数内部的函数应该定义在变量之后。减少定义全局函数。函数定义为立即执行,应该用括号包含函数定义体,这样可读性好。

var statement.  function outer(c, d) {      var e = c * d;        function inner(a, b) {          return (e * a) + b;      }        return inner(0, 1);  }    var collection = (function () {      var keys = [], values = [];        return {          get: function () {              ......          }      };  }()); 

3,函数多次调用,应该使用函数别名。比如在循环中多次调用某个函数,应该定义一个函数别名,减少调用范围链的跳转,提高性能。

function doSomething() {      var get = getDataByIndex;         for (var counter = 0; counter < 10000; counter++) {          var current = get(counter);            // ...      }  } 

4,值比较尽量使用严格比较操作符,减少类型的转换操作。

if (x === 5 && y !== 4) 

5,循环与递归:尽量把性能差的操作放在循环外部。预先计算在循环中要使用的值。在上下文中有多个循环时,定义一个统一的循环变量,避免变量无意义的多次定义。

错误编码

// example 1  for (var counter = 0; counter < 10000; counter++) {      try {         doSomething();      } catch (e) {      alert('Failure: ' + e);          break;      }  }    // example 2  for (var counter = 0;  counter < document.getElementsByTagName('div').length;  counter++) {      doSomething();  }    // example 3  for (var counter = 0; counter < 10; counter++) {      doSomething1();  };    for (var counter = 0; counter < 10; counter++) {      doSomething2();  }; 

正确编码

// example 1   try {      for (var counter = 0; counter < 10000; counter++) {           doSomething();       }  } catch (e) {      alert('Failure: ' + e);  }      // example 2  var target = document.getElementsByTagName('div').length;  for (var counter = 0;counter < target ;counter++) {      doSomething();  }    // example 3  var counter = 0;  for (counter = 0; counter < 10; counter++) {      doSomething1();  };  for (counter = 0; counter < 10; counter++) {      doSomething2();  }; 

6,Dom操作:减少Dom树的更新次数,尽量合并Dom树的更新操作,提高性能。减少赋值给innerHTML的次数。避免给Dom objects上的expando属性赋值,减少可能的内存泄漏。

7,使用全局的变量和方法:避免使用eval,eval非常耗性能。如果要使用全局的变量或方法,应该加上window,减少上下文的定义查找。

转载于:https://my.oschina.net/powertoolsteam/blog/278214

前端代码标准最佳实践:javascript篇相关推荐

  1. 前端代码标准最佳实践:CSS篇

    上一篇<前端代码标准最佳实践:javascript>发表后,大家讨论还是很热烈,从侧面体现了前端工程师对写标准的前端代码的重视程度很高.这些最佳标准实践并不是那个权威组织发布的,而是由大量 ...

  2. 前端代码标准最佳实践:HTML篇

    Web前端代码中,HTML是根本,CSS和JavaScript也是围绕着既有的HTML结构来构建,所以良好的HTML代码结构,除了提高了HTML代码的可读性,可维护性和执行性能之外,也可以让相对应的C ...

  3. 最佳实践系列:前端代码标准和最佳实践

    最佳实践系列:前端代码标准 @窝窝商城前端(刘轶/李晨/徐利/穆尚)翻译于2012年 版本0.55 @郑昀校对 isobar的这个前端代码标准和最佳实践文档,涵盖了Web应用开发的方方面面,我们翻译了 ...

  4. Spotfire在文本区域添加自定义JavaScript代码的最佳实践

    这边文章包含了如何在TIBCO Spotfire分析文件的文本区域中以一种可支持和可维护的方式来开发自定义JavaScript代码的最佳实践和建议,因此,这些分析文件将持续与TIBCO Spotfir ...

  5. 前端性能优化最佳实践(转)

    转载请注明: 转载自WEB前端开发(www.css119.com)-关注常见的WEB前端开发问题.最新的WEB前端开发技术(webApp开发.移动网站开发).最好的WEB前端开发工具和最全的WEB前端 ...

  6. 前端性能优化最佳实践

    本文主要考量客户端性能.服务器端和网络性能,内容框架来自 Yahoo Developer Network,包含 7 个类别共 35 条前端性能优化最佳实践,在此基础上补充了一些相关或者更符合主流技术的 ...

  7. GMTC 大前端时代前端监控的最佳实践

    摘要: 今天我分享的内容分成三个部分: 第一部分是"大前端时代前端监控新的变化", 讲述这些年来,前端监控一些新的视角以及最前沿的一些思考. 第二部分"前端监控的最佳实践 ...

  8. SpringCloud 应用在 Kubernetes 上的最佳实践 — 部署篇(工具部署)

    作者 | 孤弋  阿里云高级技术专家,负责 EDAS 的开发和用户体验优化工作. 导读:上一篇文章<SpringCloud 应用在 Kubernetes 上的最佳实践 - 部署篇(开发部署)&g ...

  9. 升级遗留代码的最佳实践

    云栖号资讯:[点击查看更多行业资讯] 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 在传统企业甚至互联网企业中往往存在大量的遗留代码,这些遗留代码大多都能够正常工作,有的可能还运行着 ...

最新文章

  1. java线程的状态及状态间的切换
  2. 偏依赖图(Partial Dependence Plots)是什么?排列重要性(Permutaion Importance)是什么?如何解读?有什么意义?
  3. Visual Studio调试技巧
  4. Java中的时间和日期(下)
  5. 心痛!常德网约车司机遇害 滴滴回应:已成立应急处置小组
  6. Docker + Spring Boot + FastDFS 搭建一套分布式文件服务器,太强了!
  7. synchronized()_synchronized 和 ReentrantLock 有什么区别?
  8. file处理的一些内容
  9. 早期的文章-手机开发平台指南、教程和资料介绍
  10. Android开机动画没有声音,Android O 8.0 自定义开机动画/开机铃声
  11. windows powershell激活anaconda虚拟环境
  12. html,css,js,简单的网页留言板
  13. android ram rom测试工具,ROM与RAM的那点事,超详细解说
  14. python+selenium自动登录126邮箱并发送邮件
  15. 大数据告诉你NBA的字母哥如何年入2415万美金
  16. 用python输出十二星座_十二星座对应的星球是什么
  17. 2020-10-26
  18. 国外著名商品指数编制方法比较
  19. TCP三次握手的第三次的 ack包丢失会怎样?
  20. 2-9 彩虹瓶 (20 分)

热门文章

  1. 数据库之关系模型的组成,特点以及完整性约束
  2. python双轴折线图是什么意思_操作-简易图形-折线图
  3. 海外观察丨未来 10 大科技趋势预测全解读(上)
  4. 直播预告 | 后广告时代数据助力融合媒体用户收入增长
  5. 【干货下载】大数据分析——如何消除金融不确定性
  6. 神策数据宣布与微软进行深度合作 共拓大数据生态圈
  7. Java核心(三)并发中的线程同步与锁
  8. MDT跨网段UEFI部署系统
  9. jquery validate验证方法
  10. VB 调用 QuickTestpro 脚本