Cs
12. javascript 구조 분해 할당
ITSEONG
2022. 4. 19. 23:00
구조 분해 할당이란
- 배열이나 객체의 속성을 분해해서 그 값을 변수에 담을 수 있게 하는 표현식
let [x, y] = [1, 2];
console.log(x) // 1
console.log(y) // 2
위와 같이 배열 값에 각각 할당을 해줄 수 있게 된다.
// 할당 할 값이 없을 떄
let [a, b, c] = [1,2] ;
console.log(a) // 1
console.log(b) // 2
console.log(c) // undefined
할당할 값이 없는 c는 undefined 가 들어간다.
undefined를 방지하기 위해 기본값을 사용하게 된다
// 할당 할 값이 없을 떄
let [a=3, b=4, c=5] = [1,2] ;
console.log(a) // 1
console.log(b) // 2
console.log(c) // 5
기본 값을 사용하면 undefined를 방지할 수 있게 된다.
또 일부 반환 값이 필요 없을 땐 무시할 수 있다.
let [user1, ,user2] = [ seonguen, seonghun, park, kim];
console.log(user1) //seonguen
console.log(user2) //park
// seonghun 과 kim은 할당되지 않음
바꿔치기
let a = 1;
let b = 2;
이때 a, b의 값을 바꾸고 싶다면 어떻게 해야 할까?
a = b;
console.log(a); //2
console.log(b); //2
위와 같은 방법으로는 되지 않는다.
let c = a; // a의 값을 c에 임시 저장
a = b;
b = c;
위와 같이 c라는 값을 만들어 a를 임시저장 후 사용해야 한다.
하나 배열 구조 분해를 이용하면 간편하게 바꿀 수 있다.
[a,b] = [b,a]
이거 하나면 손쉽게 바꿀 수 있다.
let user = { name: 'seonghun' , age : 30}
let {name , age} = user;
let user.name = 'seonghun';
let user.age = '30'; // 3번 라인과 같다.
let {age, name} = user; // 3번 라인과 같다.
let {age : myAge, name : myName} = user;
console.log(myAge) //30; age를 myAge로 변경
console.log(myName) //seonghun; name 을 myName 으로 변경
let {name, age, gender} = user;
console.log(gender) // undefined가 할당된다.
//이럴때 배열 구조분해 할당과 같이 기본값을 부여한다.
let {name, age, gender='M'} = user;
console.log(gender) // 기본값 M 가 할당된다.
let user = { name: 'seonghun' , age : 30, gender : 'F' }
// 값이 있다면 있는 값을 사용하게 된다.
오늘은 구조 분해 할당을 알아보았다.
객체나 배열의 값에 조금 더 쉽게 접근하고 다룰 수 있게 되었다.
반응형