代码风格、习惯

在写代码之前,有必要了解一下JavaScript的编码习惯和约定。这些内容不是必须遵守的,但请在项目中保持一致。或者遵循项目已有的习惯。

我个人的观点:在高可读性的前提下:尽量简洁,减少符号(Token)数量;同类变量命名方式一致,可使用多种命名规则;少按Shift键;

如果你感兴趣,可以去ESLint了解更多。你可以在我网站代码库中找到我使用的ESLint配置

语句末分号;

按照Java/C++的习惯,JS用分号表示语句分界。但这个分号是可选的。如果没有写分号,JS解释器会根据语法自动补上。

根据Isaac Schlueter的解释:

JS解释器认为行末(回车符\n)总是语句的结束,除非:

  • 括号未配对,或不能形成合法语句
  • 这一行是:++--
  • 这一行是:for()while()doif()else,并且没有{
  • 下一行开头是以下之一:[(*+-/,.

我的习惯:不写分号,但在以[(开始的行首加上;(遵守这个规则,一般不会遇到问题)。不写分号比漏写分号要好。

缩进

缩进宽度没有统一的惯例,一般有两空格、四空格、tab键这三种。

我的习惯:四空格。能很清楚的看出缩进;有助于防止过多层回调(假设遵循每行80个字符的习惯)。

单引号'、双引号"、反引号`

JS中,单引号、双引号都可以用来表示字符串,两者没有任何差异。反引号用来表示模版字符串(Template String),可以当作普通字符串使用,也可以用来嵌入表达式的值。

我的习惯:单引号。避免\'转义时用";反引号仅用来表示模版字符串。

let string = 'Hello World!'
let avoid_escape = "That's JavaScript"

标识符

标识符命名规则和Java、C++基本相同。除此以外,可以用$作为标识符开头。

let $jQuery
  , _internal
  , c_style_identifier
  , withNumbers123

通常遵循以下的命名规则: