값을 비교해 결과 값을 boolean 타입인 true나 false로 반환한다.
console.log(`1 == '1' : ${1 == '1'}`);
console.log(`1 == true : ${1 == true}`);
console.log(`1 === '1' : ${1 === '1'}`);
console.log(`1 === true : ${1 === true}`);
동등 연산자와 일치 연산자
==, !=의 형태로 좌항과 우항이 같은 값으로 평가되는지 비교한 후, boolean 타입 값을 반환한다.===의 형태로 좌항과 우항이 같은 값과 타입으로 평가되는지 비교한 후, 모두 같은 경우 true를 반환한다.&& 연산자 (and)앞선 값이 false라면 바로 false를 반환하고 true면 뒤의 값을 반환한다.
console.log(true && 'aaa'); // aaa
console.log(false && 'aaa'); // false
|| 연산자 (or)앞선 값이 true라면 바로 true를 반환하고 false면 뒤의 값을 반환한다.
console.log(true || 'aaa'); // true
console.log(false || 'aaa'); // aaa
JavaScript는 특정 상황에서 특정 값을 boolean으로 판단한다.
Falsy한 값이라는 것은 이런 상황에서 false로 평가되는 값이다.
if (false)
if (null)
if (undefined)
if (0)
if (NaN)
if ("")
??를 사용해 평가한다
좌항이 null, undefined일 경우에만 다음 평가를 진행한다
console.log(0 || "aaa"); // "aaa"
console.log(0 ?? "aaa"); // 0
console.log("" || "aaa"); // "aaa"
console.log("" ?? "aaa"); // ""
console.log(null || undefined || "aaa"); // "aaa"
console.log(null ?? undefined ?? "aaa"); // "aaa"
변수에 값이 없을 때 할당하는 용도로도 유용하다
const a = undefined;
const b = a ?? 'newValue'
console.log(b) // newValue
++변수의 값을 1씩 증가 시킨다
let num = 1;
num++;
console.log(num); // 2
--변수의 값을 1씩 감소 시킨다
let num = 1;
num--;
console.log(num); // 0