对象与数组
对象中定义了存值器,一定要对应的定义取值器
const person = {
set name (value) { // ✗ 错误
this._name = value
}
}
const person = {
set name (value) {
this._name = value
},
get name () { // ✓ 正确
return this._name
}
}
使用数组字面量而不是构造器
const nums = new Array(1, 2, 3) // ✗ 错误
const nums = [1, 2, 3] // ✓ 正确
不要解构空值
const { a: {} } = foo // ✗ 错误
const { a: { b } } = foo // ✓ 正确
对象字面量中不要定义重复的属性
const user = {
name: 'Jane Doe',
name: 'John Doe' // ✗ 错误
}
不要扩展原生对象
Object.prototype.age = 21 // ✗ 错误
外部变量不要与对象属性重名
let score = 100
function game () {
score: while (true) { // ✗ 错误
score -= 10
if (score > 0) continue score
break
}
}
对象属性换行时注意统一代码风格
const user = {
name: 'Jane Doe', age: 30,
username: 'jdoe86' // ✗ 错误
}
const user = { name: 'Jane Doe', age: 30, username: 'jdoe86' } // ✓ 正确
const user = {
name: 'Jane Doe',
age: 30,
username: 'jdoe86'
}
避免使用不必要的计算值作对象属性
const user = { ['name']: 'John Doe' } // ✗ 错误
const user = { name: 'John Doe' } // ✓ 正确