■ Template Literals
변수와 표현식을 문자열 안에 쉽게 삽입할 수 있게 해주는 문법
백틱(`) 으로 구성할 문자열을 감싸주고 변수나 표현식은 ${ } 으로 감싸서 입력한다.
(예시)
let customer = { name: "하영" };
let item = { name: "아메리카노", price: 4000 };
console.log(`감사합니다, ${customer.name}님. ${item.name} 을(를) ${item.price}(원)에 구매하셨습니다.`);
// 출력: 감사합니다, 하영님. 아메리카노 을(를) 4000(원)에 구매하셨습니다.
■ Destructuring (구조 분해 할당)
객체나 배열의 속성을 쉽게 추출할 수 있게 해주는 문법
☛ 객체 Destructuring
객체 안의 key 를 그대로 사용해서 분해함! 순서는 상관 X
const { name, price } = item;
console.log(name); // 커피
console.log(price); // 4000
// 중첩 객체 디스트럭처링, 출력하기
const movie = {
title: "Inception",
director: "Christopher Nolan",
release: {
year: 2010,
month: "July"
}
};
const { title, release: { year } } = movie;
console.log(title); // Inception
console.log(year); // 2010
function confirmReservation(user) {
// 객체의 키를 바꿔줄 떄는 ':' 으로 바꿔줌!!
const {name, roomType, date: firstDate} = user;
// userInfo가 user로 들어오므로 = user 해줘야 함!
return `${name} 고객님의 ${roomType}룸 입실날짜는 ${firstDate} 입니다.`
}
const userInfo = {
name: "James",
roomType: "Deluxe",
date: "2023-05-30"
}
const result = confirmReservation(userInfo);
console.log(result); // 출력 결과: 'James 고객님의 Deluxe룸 입실날짜는 2023-05-30 입니다.'
☛ 배열 Destructuring
배열의 요소를 index(순서)에 따라 변수로 할당!
const numbers = [10, 20, 30, 40, 50];
// 10, 30을 가져오기 위해서 ',' 로 index를 표시하고 2번째 index 가져오기
const [first, , third] = numbers;
console.log(first); // 10
console.log(third); // 30
■ spread operator (...)
기존 배열이나 객체의 전체, 일부를 다른 배열이나 객체로 빠르게 복사할 수 있음
* 기존에 생성되어 변수에 할당되어 있는 배열, 객체를 새로운 변수에 할당하게 되면 새로운 변수는 기존 객체, 배열을 참조한다
→ 새로운 변수의 객체, 배열을 변경 할 시 기존 변수의 객체, 배열도 같이 변경된다..!
➜ 참조가 아닌 복사를 하기 위해 spread Operator(...) 를 활용하면 간편하게 새로운 배열을 복사할 수 있다!
// 두 객체를 병합하여 새 객체 생성하기
const obj1 = { name: "빵빵이", age: 28 };
const obj2 = { name: "옥지", email: "okgee@gmail.com" };
const mergedObj = { ...obj1, ...obj2 }; // 펼쳐진 객체 obj1 뒤에 ',' 를 붙여서 쉽게 병합
console.log(mergedObj); // { name: "옥지", age: 28, email: "okgee@gmail.com" }
// 동일한 키 'name' 이 존재할 경우 뒤에오는 obj2 값이 우선시 됨!!
mergedObj.name = "하영";
console.log(mergedObj); // { name: "하영", age: 28, email: "okgee@gmail.com" }
// 객체를 펼쳐서 새로운 객체로 생성했으므로 값을 변경해도 기존 객체 값 변동X!
console.log(obj1); // { name: "빵빵이", age: 28 }
console.log(obj2); // { name: "옥지", email: "okgee@gmail.com" }
■ rest operator (...)
함수의 매개변수, 객체/배열 리터럴에서 남은 부분을 하나의 변수로 그룹화 할 때 사용됨
함수 - 여러 인수를 배열로 그룹화
객체분해할당 - 특정 속성을 제외한 나머지 속성들을 새 객체로 그룹화
// 함수 매개변수에서 사용
function sum(...numbers) {
return numbers.reduce((acc, current) => acc + current, 0);
}
console.log(sum(1, 2, 3, 4)); // 10
// 객체 분해 할당
const person = {
name: "John",
age: 30,
country: "USA",
occupation: "Developer"
};
const { country, ...rest } = person;
console.log(rest); // { name: "John", age: 30, occupation: "Developer" }
// country 를 제외한 나머지 값을 쉽게 가져올 수 있음!
'TIL' 카테고리의 다른 글
Math.pow(), Math.sqrt() (0) | 2024.08.12 |
---|---|
querySelectorAll (0) | 2024.08.09 |
localStorage (0) | 2024.08.07 |
팀 프로젝트 - 영화 검색 페이지 빌드업 (240731~240807) (0) | 2024.08.06 |
분수의 덧셈 (0) | 2024.08.05 |