对象与数组

对象中定义了存值器,一定要对应的定义取值器

  1. const person = {
  2. set name (value) { // ✗ 错误
  3. this._name = value
  4. }
  5. }
  6. const person = {
  7. set name (value) {
  8. this._name = value
  9. },
  10. get name () { // ✓ 正确
  11. return this._name
  12. }
  13. }

使用数组字面量而不是构造器

  1. const nums = new Array(1, 2, 3) // ✗ 错误
  2. const nums = [1, 2, 3] // ✓ 正确

不要解构空值

  1. const { a: {} } = foo // ✗ 错误
  2. const { a: { b } } = foo // ✓ 正确

对象字面量中不要定义重复的属性

  1. const user = {
  2. name: 'Jane Doe',
  3. name: 'John Doe' // ✗ 错误
  4. }

不要扩展原生对象

  1. Object.prototype.age = 21 // ✗ 错误

外部变量不要与对象属性重名

  1. let score = 100
  2. function game () {
  3. score: while (true) { // ✗ 错误
  4. score -= 10
  5. if (score > 0) continue score
  6. break
  7. }
  8. }

对象属性换行时注意统一代码风格

  1. const user = {
  2. name: 'Jane Doe', age: 30,
  3. username: 'jdoe86' // ✗ 错误
  4. }
  5. const user = { name: 'Jane Doe', age: 30, username: 'jdoe86' } // ✓ 正确
  6. const user = {
  7. name: 'Jane Doe',
  8. age: 30,
  9. username: 'jdoe86'
  10. }

避免使用不必要的计算值作对象属性

  1. const user = { ['name']: 'John Doe' } // ✗ 错误
  2. const user = { name: 'John Doe' } // ✓ 正确