JavaScript 风格指南

JavaScript 风格指南描述了代码风格和编码约定,好的的编码风格提高代码的可读性和可维护性。。

始终对所有 JavaScript 项目使用相同的编码约定。

编码约定是编程的风格指南。它们通常包括:

  • 变量和函数的命名和声明规则。
  • 空格、缩进和注释的使用规则。
  • 编程实践和原则

好的编码约定有助于提高代码质量:

  • 提高代码可读性
  • 让代码维护更简单

编码约定可以是团队遵循的记录规则,也可以只是您的个人编码实践。

此页面描述了常用的 JavaScript 代码约定,你可以根据自己的实际情况做出调整。 您还应该阅读下一章“最佳实践”,并了解如何避免编码陷阱。

变量名

使用驼峰命名法作为标识符名称(变量和函数)。

所有名称都以字母开头

在本页底部,您将找到有关命名规则的更广泛的讨论。

firstName = "John";
lastName = "Doe";

price = 19.9;
tax = 0.2;

fullPrice = price + price * tax;

运算符周围的空间

始终在运算符 ( = + - * / ) 和逗号之后放置空格:

let x = y + z;
const myArray = ["Volvo", "Saab", "Fiat"];

代码缩进

始终使用 2 个空格来缩进代码块:

function toCelsius(fahrenheit) {
  return (5 / 9) * (fahrenheit - 32);
}

不要使用制表符(制表符)进行缩进。不同的编辑器对制表符的解释不同。

声明规则

简单语句的一般规则:总是以分号结束简单的语句。

const cars = ["Volvo", "Saab", "Fiat"];

const person = {
  firstName: "John",
  lastName: "Doe",
  age: 50,
  eyeColor: "blue",
};

复杂(复合)语句的一般规则:

  • 将左括号放在第一行的末尾。
  • 在左括号前使用一个空格。
  • 将右括号放在一个新行上,没有前导空格。

函数

function toCelsius(fahrenheit) {
  return (5 / 9) * (fahrenheit - 32);
}

循环

for (let i = 0; i < 5; i++) {
  x += i;
}

条件判断

if (time < 20) {
  greeting = "Good day";
} else {
  greeting = "Good evening";
}

对象规则

对象定义的一般规则:

  • 将左括号与对象名称放在同一行。
  • 在每个属性与其值之间使用冒号加一个空格。
  • 在字符串值周围使用引号。
  • 将右括号放在一个新行上,没有前导空格。
  • 始终以分号结束对象定义。
const person = {
  firstName: "John",
  lastName: "Doe",
  age: 50,
  eyeColor: "blue",
};

可以在一行上压缩短对象,仅在属性之间使用空格,如下所示:

const person = { firstName: "John", lastName: "Doe", age: 50, eyeColor: "blue" };

每行长度

为了可读性,避免超过 80 个字符的行。

如果 JavaScript 语句不能放在一行中,最好将它打断的地方是在运算符或逗号之后。

document.getElementById("demo").innerHTML = "Hello Dolly.";

命名约定

始终对所有代码使用相同的命名约定。例如:

  • 驼峰命名的变量名和函数名
  • 大写的全局变量
  • 大写的常量(如 PI

在名称中使用中划线、下划线还是驼峰表示?

这是程序员经常讨论的问题。这取决于用在哪里。

HTML 和 CSS 中的中划线:

HTML5 属性可以以 data-data-quantity, data-price)开头。

CSS 在属性名称(font-size)中使用中划线。

JavaScript 变量名、函数名中不允许使用中划线。

下划线:

许多程序员更喜欢使用下划线 (date_of_birth),尤其是在 SQL 数据库中。

PHP 文档中经常使用下划线。

大驼峰:

大驼峰拼写法通常是 C 程序员的首选。

小驼峰:

小驼峰拼写法一般 Java, JavaScript 语言的首选。

在 HTML 中加载 JavaScript

使用简单的语法加载外部脚本(不需要 type 属性):

<script src="myscript.js"></script>

访问 HTML 元素

使用“不整洁”的 HTML 样式的结果可能会导致 JavaScript 错误。

这两个 JavaScript 语句会产生不同的结果:

const obj = getElementById("Demo");

const obj = getElementById("demo");

如果可能,请在 HTML 中使用相同的命名约定(与 JavaScript 相同)。

访问 HTML 样式指南

文件扩展名

HTML 文件应具有 .html 扩展名(允许使用 .htm)。

CSS 文件应该有一个 .css 扩展名。

JavaScript 文件应具有 .js 扩展名。

使用小写文件名

大多数 Web 服务器(Apache、Unix)对文件名区分大小写:

london.jpg 不能作为 London.jpg 访问。

为避免这些问题,请始终使用小写文件名(如果可能)。

性能

编码约定主要是为了代码的可读性和可维护性,与程序的性能几乎没有关系。

少量的代码中并不能体现除编码约定的重要性,团队开发和大的脚本文件才能体会到编码约定的重要性。