解构
5.1 当需要访问和使用一个对象的多个属性时,使用对象解构
eslint: prefer-destructuring jscs: requireObjectDestructuring
为什么?解构能够让你不用为这些属性创建临时引用
// bad
function getFullName(user){
const firstName=user.firstName
const lastName=user.lastName
return `${firstName} ${lastName}`
}
// good
function getFullName(user){
const {firstName,lastName}=user
return `${firstName} ${lastName}`
}
// best
function getFullName({firstName,lastName}){
return `${firstName} ${lastName}`
}
5.2 使用数组解构
eslint: prefer-destructuring jscs: requireArrayDestructuring
const arr=[1,2,3,4]
// bad
const first=arr[0]
const second=arr[1]
// good
const [first,second]=arr
5.3 有多个返回值的时候,用对象解构,而不是数组解构
jscs: disallowArrayDestructuringReturn
为什么?这样你可以在任何时候加入新的属性或者改变他们的顺序
// bad
function processInput(input){
//then a miracle occurs
return [left,right,top,bottom]
}
//调用者需要考虑返回的数据的顺序
const [left,_,top]=processInput(input)
// good
function processInput(input){
// then a miracle occurs
return {left,right,top,bottom}
}
//调用证只需要直接选择他们需要的数据就可以了
const {left,top}=processInput(input)