基本书写

使用两个空格进行缩进

不要混合使用空格与制表符作为缩进

  1. function hello (name) {
  2. console.log('hi', name) // ✓ 正确
  3. console.log('hello', name) // ✗ 错误
  4. }

除了缩进,不要使用多个空格

  1. const id = 1234 // ✗ 错误
  2. const id = 1234 // ✓ 正确

不要在句末使用分号

  1. const a = 'a' // ✓ 正确
  2. const a = 'a'; // ✗ 错误

字符串统一使用单引号

  1. console.log('hello there')
  2. // 如果遇到需要转义的情况,请按如下三种写法书写
  3. const x = 'hello "world"'
  4. const y = 'hello \'world\''
  5. const z = `hello 'world'`

代码块中避免多余留白

  1. if (user) {
  2. // ✗ 错误
  3. const name = getName()
  4. }
  5. if (user) {
  6. const name = getName() // ✓ 正确
  7. }

关键字后面加空格

  1. if (condition) { ... } // ✓ 正确
  2. if(condition) { ... } // ✗ 错误

函数声明时括号与函数名间加空格

  1. function name (arg) { ... } // ✓ 正确
  2. function name(arg) { ... } // ✗ 错误
  3. run(function () { ... }) // ✓ 正确
  4. run(function() { ... }) // ✗ 错误

展开运算符与它的表达式间不要留空白

  1. fn(... args) // ✗ 错误
  2. fn(...args) // ✓ 正确

遇到分号时空格要后留前不留

  1. for (let i = 0 ;i < items.length ;i++) {...} // ✗ 错误
  2. for (let i = 0; i < items.length; i++) {...} // ✓ 正确

代码块首尾留空格

  1. if (admin){...} // ✗ 错误
  2. if (admin) {...} // ✓ 正确

圆括号间不留空格

  1. getName( name ) // ✗ 错误
  2. getName(name) // ✓ 正确

属性前面不要加空格

  1. user .name // ✗ 错误
  2. user.name // ✓ 正确

一元运算符前面跟一个空格

  1. typeof!admin // ✗ 错误
  2. typeof !admin // ✓ 正确

注释首尾留空格

  1. //comment // ✗ 错误
  2. // comment // ✓ 正确
  3. /*comment*/ // ✗ 错误
  4. /* comment */ // ✓ 正确

模板字符串中变量前后不加空格

  1. const message = `Hello, ${ name }` // ✗ 错误
  2. const message = `Hello, ${name}` // ✓ 正确

逗号后面加空格

  1. // ✓ 正确
  2. const list = [1, 2, 3, 4]
  3. function greet (name, options) { ... }
  1. // ✗ 错误
  2. const list = [1,2,3,4]
  3. function greet (name,options) { ... }

不允许有连续多行空行

  1. // ✓ 正确
  2. const value = 'hello world'
  3. console.log(value)
  1. // ✗ 错误
  2. const value = 'hello world'
  3. console.log(value)

单行代码块两边加空格

  1. function foo () {return true} // ✗ 错误
  2. function foo () { return true } // ✓ 正确
  3. if (condition) { return true } // ✓ 正确

不要使用非法的空白符

  1. function myFunc () /*<NBSP>*/{} // ✗ 错误

始终将逗号置于行末

  1. const obj = {
  2. foo: 'foo'
  3. ,bar: 'bar' // ✗ 错误
  4. }
  5. const obj = {
  6. foo: 'foo',
  7. bar: 'bar' // ✓ 正确
  8. }

点号操作符须与属性需在同一行

  1. console.log('hello') // ✓ 正确
  2. console.
  3. log('hello') // ✗ 错误
  4. console
  5. .log('hello') // ✓ 正确

文件末尾留一空行

函数调用时标识符与括号间不留间隔

  1. console.log ('hello') // ✗ 错误
  2. console.log('hello') // ✓ 正确

键值对当中冒号与值之间要留空白

  1. const obj = { 'key' : 'value' } // ✗ 错误
  2. const obj = { 'key' :'value' } // ✗ 错误
  3. const obj = { 'key':'value' } // ✗ 错误
  4. const obj = { 'key': 'value' } // ✓ 正确