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
- 배포시 systempath
- javascript
- maver 외부 jar 배포
- niceid_v1.1.jar maven
- 자바object다형성
- Object
- 자바
- 졸프
- java object 다형성
- java object 클래스
- maven repository jar
- object 배열
- 스프링
- object배열
- Spring
- 자바스크립트
- object tostring
- map multivaluemap
- object 다형성
- nice_v1.1.jar
- maven systempath
- map vs multivaluemap
- 외부 라이브러리 jar 배포
- object다형성
- 맥북 port kill
- java
- 도커 컨테이너에 mysql
- maven 외부 라이브러리 배포
- maven jar 배포
- JS
Archives
- Today
- Total
모래블로그
[JavaScript] 구조 분해 할당 본문
728x90
반응형
구조 분해 할당(Destructuring Assignment)
구조 분해 할당 문법은 배열이나 객체의 속성을 분해하여 그 값을 개별 변수에 담을 수 있게 하는 자바스크립트 표현식이다.
즉, 객체나 배열을 변수로 '분해'할 수 있게 해준다.
1. 기본 문법
// 이름과 성을 요소로 가진 배열
let arr = ["Soojin", "Park"]
// 구조 분해 할당을 이용해
// firstName엔 arr[0]을
// lastName arr[1]을 할당
let [firstName, lastName] = arr;
alert(firstName); // Soojin
alert(lastName); // Park
위와 같이 인덱스를 이용해 배열에 접근하지 않아도 변수로 이름과 성을 사용할 수 있다.
1. 배열(array)에서의 구조 분해 할당
배열을 해체해서 배열 요소 순서와 선언된 변수 순서에 맞게 그 값을 각각 할당한다. 코드를 훨씬 더 간단하게 작성할 수 있다.
const a = [10, 20];
const [x, y] = a
console.log(x); // 10
console.log(y); // 20
비어있는 곳은 값이 할당되지 않으며, 디폴트 값을 설정할 수 있다.
const a = ['apple', 'banana', 'cherry'];
const [x, , y, z = "empty"] = a
console.log(x, y, z); // apple cherry empty
... 연산자 사용하여 배열의 남은 부분을 하나의 변수에 한 번에 담을 수도 있다.
const arr = [1, 2, 3, 4, 5];
const [a, b, ...c] = arr;
console.log(a); // 1
console.log(b); // 2
console.log(c); // [3, 4, 5]
2. 객체(object)에서의 구조 분해 할당
배열 구조 분해 할당 형식과 비슷하다.
객체 내부의 프로퍼티 값을 간편하게 분해해서 변수에 저장할 수 있게 해준다.
분해되는 대상이 배열은 array의 value(element) 였다면, 객체는 분해되는 대상이 객체의 property 인 차이가 있다.
const a = { p: 42, q: true }
const { p, q } = a;
console.log(p); // 42
console.log(q); // true
객체 구조 분해 할당은 프로퍼티를 기준으로 하므로, 배열 구조 분해 할당과 달리 그 순서가 바뀌어도 문제 없이 해당 프로퍼티 값을 가져올 수 있다.
객체에도 마찬가지로 ... 연산자를 사용하여 나머지 객체에 할당이 가능하다.
const user = {
id : 'morae',
name : 'Park',
age : 27,
}
const { id, ...rest } = user;
console.log(id); // morae
console.log(rest); // { name : "Park", age: 27 }
참조🙇♀️
https://chanhuiseok.github.io/posts/js-10/
https://charming-kyu.tistory.com/23
728x90
반응형
'Language > JavaScript' 카테고리의 다른 글
[JavaScript] Generator(제너레이터) (0) | 2024.02.16 |
---|---|
[JavaScript] 동기, 비동기 (0) | 2024.02.15 |
[JavaScript] Spread Operator(스프레드 연산자) (0) | 2024.02.14 |
[JavaScript] Arrow Function vs Function (0) | 2024.02.14 |
[JavaScript] 일급객체 (0) | 2024.02.07 |