기본형
const add2 = (a, b) => {
return a + b;
};
return 한줄 일때
const add3 = (a,b) => a + b;
param이 한 개일 때
const add4 = a => a + 4;
객체 반환 시
// 1
const add5 = (a) => {
return {hello: 'world'};
};
// 2
const add6 = (a) => ({ hello: 'world' });
생략
- key와 value가 같으면 생략이 가능함
const register = (ID, PW) => ({ ID: ID, PW: PW })
const register = (ID, PW) => ({ ID, PW })
객체
- 보통은 1(생략)과 병합하여 많이 사용
const woman = { name: 'danbi', age: 25, sex: 'female' };
// 아래 방법 사용 시 womanName, womanAge로 개별 선언
const { name: womanName, age: womanAge } = { name: 'danbi', age: 25, sex: 'female' };
// 아래 방법 사용 시 변수와 해당 키값이 동일해야 함
const { name, age, sex } = { name: 'danbi', age: 25, sex: 'female' };
배열
const [first, second, third] = [true, false, 'hi']
console.log(first, second, third)
spread 연산자…
const [first2, ...rest] = [true, false, 'hi'] // true [ false, 'hi' ]
const arr = [1, 2, 3]
const arr2 = [...arr, 4, 5] // [1,2,3,4,5]
const { name: name2, ...rest2} = {
name: 'danbi', age: 25, sex: 'female'
}; // danbi { age: 25, sex: 'female' }
console.log({
...rest2,
height: 163
}) // { age: 25, sex: 'female', height: 163 }
함수를 통한 비구조화 할당
- 자바스크립트는 변수에 함수를 넣을 수 있으며, 비구조화 할당으로 인한 괄호 생략이 가능함
function prt4(){
console.log("hello world4")
}
const ob = {
prt4 // prt4: prt4()와 동일함(비구조화 할당)
}
자동 변수 삽입
const test = "test word";
const ob2 = {
[test]: 1, // 변수값이 자동 삽입됨
[1 * 2 * 3]: 6,
} // { '6': 6, 'test word': 1 }
해당 변수가 있는지 모를 경우
console.log(ob?.country?.hi)
??
- 해당 값이 null일 경우 뒤의 값을 출력
- 결론적으로 변수가 생성되거나 값이 덮어씌워지는 것이 아닌 해당 명령 때만 수행
console.log(ob.country ?? 'seoul') // null 일 경우 서울을 삽입
console.log(ob.country ? ob.country : 'seoul') // 위의 축약형
console.log(ob.country) // undefined