Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- TypeScript
- 항해99 2기
- Til
- MySQL
- 조코딩
- 타입스크립트
- 자바 스캐너
- 자바 공배수
- 자바 구구단 출력
- 변수
- 항해99
- 자바 반복문
- 자바 자동캐스팅
- 자바 switch문
- 이클립스 DB연동
- Vue3
- java
- 자바 향상된 for문
- 정보처리기사실기
- 프로그래머스
- 자바
- 자바 public
- 자바 while문
- 자바 강제 캐스팅
- react with typescript
- 자바 조건문
- 자바 삼항연산자
- react ag grid
- 자바 if문
- 자바 for문
Archives
- Today
- Total
뇌 채우기 공간
[Java Script] 비구조화 할당(구조분해) 너무 어렵다!!! 본문
const object = { a: 1, b: 2 };
const { a, b } = object;
console.log(a); // 1
console.log(b); // 2
객체에서 값을 꺼내주기 위해서 이렇게 사용한다.
비구조화 할당은 함수의 파라미터에서도 사용할 수 있다.
const object = { a: 1, b: 2 };
function print({ a, b }) {
console.log(a);
console.log(b);
}
print(object);
그런데 여기서b에 값이 없다고 가정해보겠다.
const object = { a: 1 };
function print({ a, b }) {
console.log(a);
console.log(b);
}
print(object);
// 1
// undefined
비구조화 할당시 기본값 설정
이러한 상황에 b에 기본값을 주려면 이렇게 하면 된다.
const object = { a: 1 };
function print({ a, b = 2 }) {
console.log(a);
console.log(b);
}
print(object);
// 1
// 2
비구조화 할당시 이름 바꾸기
이제부터 name을 nickname으로 부르고 싶다.
const animal = {
name: '멍멍이',
type: '개'
};
const nickname = animal.name;
console.log(nickname); // 멍멍이
그렇다고 기존에 animal이 가지고 있던 값이 바뀌는 것은 아니다.
배열 비구조화 할당
배열에서도 비구조화 할당을 할 수 있다.
const array = [1, 2];
const [one, two] = array;
console.log(one);
console.log(two);
배열에도 기본값을 정할 수 있다.
const array = [1];
const [one, two = 2] = array;
console.log(one);
console.log(two);
깊은 값 비구조화 할당
객체의 깊숙한 곳에 들어있는 값을 꺼내는 방법을 알아보자
const deepObject = {
state: {
information: {
name: 'velopert',
languages: ['korean', 'english', 'chinese']
}
},
value: 5
};
여기서 만약에 name이랑 languages랑 value를 꺼내고 싶다면?
const { name, languages } = deepObject.state.information;
const { value } = deepObject;
이렇게도 쓸 수 있다.
const extracted = {
name,
languages,
value
};
console.log(extracted); // {name: "velopert", languages: Array[3], value: 5}
const extracted = {
name: name,
languages: languages,
value: value
}
위 아래가 같은 코드이다.
만약에 key 이름으로 선언된 값이 존재하다면, 바로 매칭시켜주는 문법이다.
const {
state: {
information: { name, languages }
},
value
} = deepObject;
이렇게도 쓸 수 있다.
728x90
'WEB > Java Script' 카테고리의 다른 글
[Java Script] 함수의 기본 파라미터/ 함수의 파라미터로 사용할 값을 넣지 않았을 때 기본값으로 사용할 값 (0) | 2021.04.24 |
---|---|
[Java Script ]조건문 더 스마트하게 쓰기 / 배열의 내장함수 includes/ 객체를 활용한 조건문 / 조건마다 다른 함수를 실행해야 할때 (0) | 2021.04.24 |
[Java Script] 논리연산자 && and 연산자/ || or 연산자 에서 truthy와 falsy/ (0) | 2021.04.23 |
[Java Script] Truthy and Falsy/ 확인하는 방법 (0) | 2021.04.23 |
[Java Script] 삼항 연산자, 삼항 연산자의 중첩 (0) | 2021.04.23 |