js代码规范

前言

在js的代码开发中,我简单的总结出了以下规则,后面会陆续补充并且对规范进行分类。

  1. js代码建议保存到后缀名.js的文件中
  2. js代码不建议放在html中,原因有:不能被缓存,会增大网页文件的大小,可维护性不高,会影响页面的加载。另外脚本的lang(已弃用)以及type(默认是text/javascript)属性都可以省略。
  3. 缩进,建议使用空格,因为各个环境对tab的解释不通,而空格可以在压缩文件中统一被压缩掉。
  4. 每行控制在80个字符以内,如果超过请折行。
  5. 注释 : 注释可以增加代码的可维护性,尤其在项目交接的时候。 写好注释有利于团队的集成开发。 在更新功能以及模块时通过注释进行补充说明。 写有意义的注释,关键位置的说明。 单行注释:// 多行注释:/* */ 段落注释 模块注释 方法注释: /* * 这里是一段注释 * 这里的注释可以连写多行 */
  6. 变量声明: 在所有的变量使用前进行声明; 多个变量同时命名时,可以简化用,分割同时命名; 变量命名,jq的变量以$开头,比如常用的$this,私有变量以_开始; 变量没有块的概念; 注意全局变量与布局变量,避免使用全局变量,同时避免局部变量覆盖全局变量。 在函数体内,注意函数变量的说明,函数内使用到的变量要在函数头部进行尽量统一声明,尤其很多入参或者出参的时候。
  7. 函数声明: 所有的函数应该在使用前被声明; 函数声明格式,函数名与左括号无间隔,右括号与方法体大括号有空格,大括号结束符与方法声明行头部对齐。(快捷键crtl+shift+f) 特别的,如果是匿名函数,应该在方法类型与小括号之间加空格。
  8. 命名 : 变量名由26个大小写引文字母以及下划线组成,避免使用中文,不要再变量名中使用斜杠或者美元符号,不要把下划线用作变量的第一个字符,它有时会用作对象的私有变量,大多数的变量或者方法名应该以小写字母开头。 全局变量应该全部大写字母。
  9. 语句 : 9.1 简单语句 每一行语句最多只包含一条语句,吧分号放在每个简单语句的结尾。注意每个变量或者对象的赋值语句也是简单语句,应该以分号结尾。 js吧任何表达式都当一条简单语句,会导致一些隐性的错误。如果自己没加分号,那么js解释器会自动添加分号,按照自己能读懂的断句。 9.2 复合语句 也称为语句块,被包在大括号内部。 内部的语句块需要缩进四个空格,左大括号在起始行的结尾处,右大括号与左大括号所在行的开头对齐。 大括号要在使用语句块的时候使用,哪怕只有一句,这样可以避免以后再添加语句的时候造成逻辑错误,比如if else 这样的语句中,默认只对单行代码有效 。
  10. 标识 : 标识是可选的,只有在do,while,for,switch中使用。
  11. return 语句 当返回语句只有一条返回值的时候,不用加小括号; 当返回语句多个值的时候,小括号。 当返回表达式的时候,应该控制在同一行,分号结尾。
  12. 基本语句的格式,按照正确的句法,比如if,else,for,switch 等
  13. 空白 : 相关程序之间添加空白行增强程序的可读性。 每个控制结构,比如for循环的三个分支之间。 变量声明时每个逗号之间。
  14. 变量作用域 js没有有块级作用域,只有函数作用域。
  15. [] {} 的用法 使用直接量发来声明对象和数组。 比如对象 var obj={} ;var arr=[]
  16. eval eval是最容易混乱使用的js函数,他可以执行内部入参的js函数或者表达式,可以直接解析变量。不建议使用 。
  17. 不建议修改内建对象的原型链 内建对象的原型链 是比较好的标准 自己不要修改内建对象的相关方法 在内建对象的es5 es6 语法中有哪些
  18. this关键字的使用场景 : 全局变量 ,触发元素,构造器本身,定义域
  19. 明确真值表 明智的使用真假判断 (a==true)(a)
- logTruthyFalsy(true); // truthy
- logTruthyFalsy(1); // truthy
- logTruthyFalsy({}); // truthy
- logTruthyFalsy([]); // truthy
- logTruthyFalsy('0'); // truthy
- logTruthyFalsy(false); // falsy
- logTruthyFalsy(0); // falsy
- logTruthyFalsy(undefined); // falsy
- logTruthyFalsy(null); // falsy
- logTruthyFalsy(NaN); // falsy
- logTruthyFalsy(''); // falsy

20. 判断是否相等时候 采用=== 判断包括类型的相等 21. 尽量使用语法严格模式 消除代码之中的不友好;代码运行更快 ;保证运行的安全 ;为新版本的js做好铺垫。 22. 匿名函数的调用写在匿名函数的内部

(function(argus){
}(argus))

补充

待补充…

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 状态模式通识篇

    状态模式也是行为型模式中的一种,顾名思义状态模式主要是基于对象有不同的状态,从而导致具有与其对应状态的行为。

    RobinsonZhang
  • 惰性单例分析与学习

    本文基于你已经知道单例模式的要点,本文内容借鉴于《javascript设计模式与开发实践》这本书,做出了整理和一些思考。

    RobinsonZhang
  • 数组双向绑定的简单分享

    本文主要是摘录《vuejs权威指南》部分的相关解读,我们都知道vue对数据支持双向绑定,对数组也是支持的,但是其在官网有明确说明,对于数组通过 对象.语法来修改...

    RobinsonZhang
  • 如何处理SAP Fiori Launchpad KPI tile点击后出现的错误消息

    点击了SAP Fiori Launchpad KPI tile后一个典型的错误消息:

    Jerry Wang
  • 如何处理SAP Fiori Launchpad KPI tile点击后出现的错误消息

    点击了SAP Fiori Launchpad KPI tile后一个典型的错误消息:

    Jerry Wang
  • 通过WebRTC进行实时通信-结合对等连接和信令

    如果您没有从工作目录中关注此codelab,则可能需要安装step-05文件夹或当前工作文件夹的依赖项。从你的工作目录中运行下面的命令:

    音视频_李超
  • Easyui datagrid 修改分页组件的分页提示信息为中文

    直接引入中文locale目录下的easyui-lang-zh_CN.js,引入时注意js的引入顺序,避免js直接的相互影响,比如后面引入的js覆盖前面引入的js

    授客
  • 实现基于最新chrome的动态按需加载组件

    chrome63 版本后支持动态import 加载js https://developers.google.com/web/updates/2017/12/ni...

    mafeifan
  • 【玩转腾讯云】 让开发变得简单

    今年年初接触了云开发,这东西真香,减少了我们开发的繁琐和开发成本。它集成了云函数、云数据库、云存储等功能,使我们不必担心服务器运维、基础架构,只关心我们的业务逻...

    XaDon

扫码关注云+社区

领取腾讯云代金券