티스토리 뷰
0. 비구조화 할당 (Destructuring Assignment)
: 배열이나 객체의 값을 변수에 쉽게 할당하기 위한 방법
1. 종류
1.1 배열 비구조화 할당 (Array Destructuring)
const arr = [1, 2, 3];
// 비구조화 할당
const [a, b, c] = arr; // 원하는 별칭으로 재할당 가능
console.log(a); // 1
console.log(b); // 2
console.log(c); // 3
-> 배열의 비구조화 할당에서는 순서가 중요
1.2 객체 비구조화 할당 (Object Destructuring)
const object = { name: 'Hee', age: 10, favor: 'Game' }
const { name, age } = object
console.log(name) // Hee
console.log(age) // 10
const object = { name: 'Hee', age: 10, favor: 'Game' }
// 객체 비구조화
const { name: hee_name, age: hee_age } = object // 비순서 할당
console.log(hee_name) // Hee
console.log(hee_age) // 10
// 이름 그대로 사용시
const carname = "애스턴마틴 DB11"
const round = 11
const shorten = {
carname,
round,
}
2. 기본값 설정 및 사용 예시
2.1 기본값 설정 (Default Values)
const arr = [1];
// 기본값 설정
const [a, b = 2] = arr;
console.log(a); // 1
console.log(b); // 2 (기본값)
const object = { age: 10, favor: "Game" };
// 객체 비구조화
const { age: hee_age, name: hee_name = "Hee" } = object;
console.log(hee_name); // 10
console.log(hee_age); // Hee
2.2 사용 예시
| Props로 객체 전달 시,
DTO(Data Transfer Object, 함수 간 데이터 전달 시 사용하는 객체) 사용 시
더보기
DTO (Data Transfer Object) : @Getter + @Setter 모두 갖기에 데이터 조작 가능
VO (Value Object) : @Getter 만 갖기에 데이터 조작 불가, only read
function tooManyArguments(a, b, c, d, e) { ... }
// 해당 코드를 아래와 같이 변경 가능
function simplifyManyArguments({ a, b, c, d, e }) { ... }
- Default Props 정의 시, 원하는 값만 Props에 할당 가능
- Props의 비순서 사용 가능
이외에도
function Component(props) {
return <button onClick={(e) => props.onChange()}>{props.value}</button>
}
<Component props={ ... } />
// 위의 코드를 비구조화를 통해 아래와 같이 직관적인 이름으로 변경 가능
<Component value={state} onChange={() => setState(state + 1)} />
function Component({ value, onChange }) {
return <button onClick={(e) => onChange()}>{value}</button>
}
참고
ASAC
'정리용 > js' 카테고리의 다른 글
[js 자주 사용되는 ES6+문법] 문자열 및 자료 구조 (0) | 2025.01.10 |
---|---|
[js 자주 사용되는 ES6+문법] 함수 관련 (0) | 2025.01.10 |
[js 자주 사용되는 ES6+문법] 얕은 복사, 깊은 복사 (0) | 2025.01.10 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- useContext
- Nginx
- useEffect
- memo
- useReducer
- acas#acas7기
- useCallback
- ASAC
- asac7#asac
- asac#asac7기
- useLayoutEffect
- asac7
- ssh
- git
- useRef
- useMemo
- useState
- react
- asac7기
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함