📌 Arrow Function(화살표 함수)
const add = function(a,b) {
return a+b
}
const add = (a,b) => {
return a+b
}
const add = (a,b) => a+b
📌 Conditional Operator(조건 연산자 또는 삼항연산자)
let grade;
if (score > 70) {
grade = '합격';
} else {
grade = '불합격';
}
console.log(grade);
const score = 85;
const grade = score > 70 ? '합격' : '불합격';
console.log(grade);
📌 Short Circuit Evaluation(단축 평가)
- 논리합 (||) 연산자
좌변의 피연산자가 falsy 값(false, 0, "", null, undefined, NaN)일 때만 우변의 피연산자를 평가.
const getUserName = (user) => {
if(user.name === undeifined){
return "신원미상";
}
return user.name;
}
const getUserName = (user) => {
if(!user.name){
return "신원미상";
}
return user.name;
}
const getUserName = (user) => {
return user.name || "신원미상";
}
const getUserName = (user) => user.name || "신원미상";
- 논리곱 (&&) 연산자
좌변이 truthy일 때만 우변을 평가합니다. 조건에 따라 특정 코드를 실행하고자 할 때 유용
let loggedIn = true;
let username = 'kyu';
loggedIn && console.log(`환영합니다, ${username}님!`);
loggedIn = false;
loggedIn && console.log(`환영합니다, ${username}님!`);
- Optional Chaining(?.)
객체의 속성에 접근할 때 속성이 존재하지 않아도 에러를 발생시키지 않고, undefined를 반환하여 객체의 중첩된 속성에 안전하게 접근가능
(Optional Chaining은 읽기 전용, 값을 설정하려고 하면 동작하지 않음)
const user = {
name: "철수",
address: {
city: "서울",
},
};
console.log(user.address.street);
console.log(user.address?.street);
- Null 병합 연산자 (??)
"왼쪽 값이 비어있으면 오른쪽 값을 사용해라"
'null'이나 'undefined'만 체크해요,'0, 빈 문자열(""), false'는 "값이 있다고 판단"
let userLocation = null
console.log(userLocation ? userLocation : "위치 없음");
console.log(userLocation ?? "위치 없음");
📝 ||(논리 OR) 와 ??(null 병합 연산자)의 차이
- || (논리 OR)
Falsy한 값(null, undefined, 0, "", false)이면 오른쪽 값을 반환.
예: "0점인데, 기본 점수 50점으로 올릴래."
- ?? (Null 병합)
null 또는 undefined만 체크해서 오른쪽 값을 반환
예: "점수 데이터가 비었으면 기본 점수 50점을 줄게. 하지만 0점이면 그냥 0으로 둬."
let value1 = 0;
console.log(value1 || "기본값");
console.log(value1 ?? "기본값");