请选择 进入手机版 | 继续访问电脑版

JavaScript编码样式

前端开发  / Javascript  / 倒序浏览   © 著作权归作者本人所有

#楼主# 2020-5-17

跳转到指定楼层

这种JavaScript编码样式是我每天使用JavaScript时使用的一组约定。这是一个实时文档,其中包含我遵循的主要规则

每种语言在语法方面都有一套规则。

刚开始时,有些人可能会在不违反语言规则的情况下将代码添加到文件中,但又不会注意编程风格

不是因为他们不关心样式,他们没有足够的经验来认识样式的重要性。

我真的相信编程是一种技巧。就像绘画,木雕工艺品或涉及创造力的任何事物一样,我们的程序可以做很多事情,但是应该以风格来做。

我们有一些适用于所有编程语言的规则。

编码风格是您和您的团队之间协议,可以保持项目的一致性。

如果您没有团队,则与您达成协议,始终保持您的代码符合标准。

为使代码更具可读性和管理性,在代码编写格式上设置固定规则会有所帮助。

流行风格指南

您可以遵循其中之一,也可以创建自己的样式指南。

与您从事的项目保持一致

即使您喜欢一组样式,在处理项目时也应使用该项目样式。

GitHub上的一个开源项目可能遵循一组规则,您与团队合作的另一个项目可能遵循完全不同的规则。

我自己的喜好

我自己对JavaScript样式的看法是:

始终使用最新的ES版本。如果需要旧的浏览器支持,请使用Babel。

缩进:使用空格代替制表符,使用2个空格进行缩进。

分号:不要使用分号。

线长:尝试切割线在80个字符,如果可能的话。

内联注释:在代码中使用内联注释。仅使用块注释来记录文档。

没有无效代码:不要对旧代码进行注释,以防万一,以后会有用。现在只保留您需要的代码,版本控制/便笺应用程序就是为此目的而设计的。

仅在有用时注释:不要添加无助于理解代码功能的注释。如果代码通过使用良好的变量和函数命名以及JSDoc函数注释来进行自我解释,请不要添加注释。

变量声明:始终声明变量,以避免污染全局对象。永远不要使用var。默认为const,仅let在重新分配变量时使用。

函数:使用箭头函数,除非您因this工作原理而有特定的理由使用常规函数,例如在对象方法或构造函数中使用。将它们声明为const,并在可能的情况下使用隐式返回。

const test = (a, b) => a + b

const another = a => a + 2

随意使用嵌套函数将辅助函数隐藏到其余代码中。

名称:函数名称,变量名称和方法名称始终以小写字母开头(除非您将它们标识为私有,请参阅下文),并且都被驼峰化。仅构造函数和类名应以大写开头。如果使用要求特定约定的框架,请相应地更改习惯。文件名均应小写,单词之间用分隔-

特定于语句的格式和规则

如果

if (condition) {
  statements
}

if (condition) {
  statements
} else {
  statements
}

if (condition) {
  statements
} else if (condition) {
  statements
} else {
  statements
}

对于

总是在初始化时初始化长度以缓存它,不要在条件中插入它。

for (initialization; condition; update) {
  statements
}

while (condition) {
  statements
}

do {
  statements
} while (condition);

开关

switch (expression) {
  case expression:
    statements
  default:
    statements
}

尝试

try {
  statements
} catch (variable) {
  statements
}

try {
  statements
} catch (variable) {
  statements
} finally {
  statements
}

空格:明智地使用空格以提高可读性:在关键字后加上空格(;之前&二进制操作之后(+-/*&&..); 在for语句中,在每个语句之后;将语句的每个部分分开;每次之后,

换行:使用换行分隔执行逻辑相关操作的代码块。

转播转播
回复

使用道具

成为第一个评论人

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于作者

damonare

网站编辑

  • 主题

    267

  • 帖子

    269

  • 关注者

    0

手机版|ObjectX 超对象 |粤ICP备20005929号
Powered by  © 2019-2020版权归ObjectX 超对象