자바스크립트에서만 제공되거나 독특한 기능을 하는 특수한 연산자에 대해서만 별도로 살펴보도록 합니다.
null 병합 연산자(??)는 유효한 값을 추출하기 위해 사용됩니다.
즉, null이나 undefined가 아닌 첫 번째 값을 찾아 반환하는 연산자입니다.
let var1;
let var2 = 10;
let var3 = 20;
let var4 = var1 ?? var2;
console.log(var4); // 10
let var5 = var1 ?? var3;
console.log(var5); // 20
만약 null 병합 연산자(??)에 참여하는 두 개의 피연산자가 모두 null이나 undefined가 아닌 경우, 첫 번째 피연산자가 반환됩니다.
이는 null 병합 연산자가 왼쪽에서 오른쪽으로 값을 평가하며, 첫 번째로 유효한 값(즉, null이나 undefined가 아닌 값)을 반환하기 때문입니다.
let var1;
let var2 = 10;
let var3 = 20;
let var6 = var2 ?? var3;
console.log(var6); // 10
null 병합 연산자는 실무에서 매우 유용하게 사용됩니다.
예를 들어, 회원가입 시스템을 만든다고 가정해보겠습니다.
userName과 userNickName 두 개의 변수가 있습니다.
화면에 표시될 변수인 displayName에 먼저 userName이 존재한다면 displayName에 userName을 저장하고, userName이 null이나 undefined라면 userNickName을 저장하려고 할 때 이러한 경우 null 병합 연산자를 유용하게 활용할 수 있습니다.
let userName;
let userNickName = "Ahnzi";
let displayName = userName ?? userNickName;
typeof 연산자는 값의 타입을 문자열로 반환하는 기능을 하는 연산자입니다.
자바스크립트는 다른 언어와 달리, 변수를 숫자로 초기화하더라도 이후에 다른 타입의 값을 저장할 수 있습니다.
즉, 변수의 타입이 고정되어 있지 않습니다.
코드 실행에 따라 숫자였다가 문자열이 되는 등, 동적으로 타입이 변경될 수 있습니다.
let var7 = 1;
var7 = "hello";
let t1 = typeof var7;
console.log(t1); // string
삼항 연산자는 항을 3개 사용하는 연산자라서 삼항 연산자라고 부릅니다.
삼항 연산자는 조건식을 이용해서 참이나 거짓일 때의 값을 다르게 반환하는 기능을 합니다.
let 변수 = (조건식) ? (참 일 때의 반환값) : (거짓일 때의 반환값)
변수 res에 var8의 값이 짝수라면 "짝", 홀수라면 "홀"을 저장하는 조건식을 만들어봅니다.
let var8 = 10;
let res = var8 % 2 === 0 ? "짝수" : "홀수";
console.log(res); // 짝수