# Destructuring
# prefer-destructuring :
- 임시 references 생성을 줄여준다.
// 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}`;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# prefer-destructuring : 배열 destructuring
const arr = [1, 2, 3, 4];
// bad
const first = arr[0];
const second = arr[1];
// good
const [first, second] = arr;
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 리턴값이 여러개 일 때 : 객체 비구조화 > 배열 비구조화
- 객체 비구조화는, 추후에 코드에 새 속성을 추가 할 수 있다.
- 리턴 값을 순서에 상관없이 가져올 수 있다.
- 호출 할 때, 원하는 data 를 선택할 수 있다.
// 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 };
}
// 호출 할 때, 원하는 data 를 선택할 수 있다.
const { left, top } = processInput(input);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
← 3. Arrays 5. Strings →