-
Javascript - 비구조화 할당(구조 분해)Javascript 2020. 9. 5. 21:55
비구조 할당
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 = 2}){ console.log(a); console.log(b); } print(object); // 또는 const object = { a: 1 }; function print({a, b}){ console.log(a); console.log(b || 2); } print(object);
함수 이외에도 사용 가능
const object = { a: 1 }; const {a, b = 2} = object; console.log(a); console.log(b);
비구조 할당 시 이름을 바꾸는 법
const animal = { name: '멍멍이', type: '개' }; // const nickname = animal.name; const { name: nickname } = animal; // 이렇게 이름을 nickname 으로 바꿔줄 수 있다. console.log(nickname);
배열에도 비구조 할당 사용 가능
const array = [1]; // const one = array[0]; // const two = array[1]; const [one, two = 2] = array; console.log(one); console.log(two);
객체의 깊숙한 곳에 있는 값을 꺼내는 방법
const deepObject = { state: { information: { name: 'javascript', languages: ['korean', 'english', 'chinese'] } }, value: 5 } // name과 value 값을 꺼내고 싶을 때 // 2가지 방법 // 1. 비구조 할당 문법을 두번 사용 const {name, languages } = deepObject.state.information; const {value} = deepObject; // 만약 특정 키 이름으로 설정된 값에 이미 값이 있다면, value값 설정 생략가능 const extracted = { name, languages, value }; console.log(extracted); // 2. 비구조 할당 한번 하면서 여러값을 전부 가져오는 방법 // 코드가 오히려 조금 지저분해질 수 있음 const { state: { information: { name, languages } }, value } = deepObject; const extracted = { name, languages, value }; console.log(extracted);
'Javascript' 카테고리의 다른 글
Javascript - rest (0) 2020.09.05 Javascript - spread (0) 2020.09.05 Javascript - 조건문 스마트하게 쓰기 (0) 2020.09.05 Javascript - 함수의 기본 파라미터 (0) 2020.09.04 javascript - 단축 평가 논리 계산법(Short-circuit evaluation) (0) 2020.09.04