조건 연산자는 물음표 기호(?)와 콜론(:)을 사용
(조건) ? (조건이 truthy 할 때 표현식) : (조건이 falsy 할 때 표현식)
const codeit = {
name: 'codeit',
};
const codeitClone = {
...codeit, // spread 문법!
};
중괄호 안에서 객체를 spread 하게 되면, 객체를 복사 가능
배열을 Spread 하면 새로운 배열을 만들거나 함수의 아규먼트로 쓸 수 있었지만, 객체로는 새로운 배열을 만들거나 함수의 아규먼트로 사용할 수 없다.
객체를 Spread할 때는 반드시 객체를 표현하는 중괄호 안에서 활용
옵셔널 체이닝 연산자 왼편의 프로퍼티 값이 undefined
or null
이 아니라면 그 다음 프로퍼티 값을 리턴하고 그렇지 않을 경우 undefined
을 반환하는 문법
function printCatName(user) {
console.log(user.cat?.name ?? '함께 지내는 고양이가 없습니다.');
}
const user1 = {
name: 'Captain',
cat: {
name: 'Crew',
breed: 'British Shorthair',
}
}
const user2 = {
name: 'Young',
}
?? = null 병합 연산자
연산자 왼쪽 값이 null, undefined -> 오른쪽 값이 리턴
연산자 왼쪽 값이 null, undefined 이 아니라면 -> 왼쪽 값이 리턴
배열, 객체와 같이 내부에 여러 값을 담고 있는 데이터 타입을 다룰 때 사용 가능
배열의 요소, 객체의 프로퍼티 값들을 개별적인 변수에 따로 할당해서 사용 가능
기본값, rest 문법 사용 가능
const macbookPro = {
title: '맥북 프로 16형',
price: 3690000,
};
const { title, price } = macbookPro;
const { title, price, color = 'silver', ...rest } = macbookPro;
new + 에러 객체 이름의 함수 : 에러 객체 생성
throw : 에러를 발생
throw new TypeError('타입 에러가 발생했습니다.');
try...catch(...finally)
try {
// 실행할 코드
} catch (error) { // e, err 등의 변수명 사용 가능
// 에러가 발상했을 때 실행할 코드
} finally {
// 항상 실행할 코드
}