# 비교 연산자
| 연산자 | 의미 | 권장 |
| x == y | 값이 같다. | |
| x === y | 자료형, 값이 같다 | 권장 |
| x != y | 값이 다르다. | |
| x !== y | 자료형 또는 값이 다르다. | 권장 |
| x <= y | 사전순으로 x가 먼저 나오거나 같다. | |
| x > y | 사전순으로 y가 먼저 나온다. | |
| x >= y | 사전순으로 y가 먼저 오거나 같다. |
console.log(
'1' == '1',
'1' == 1,
'1' == 2
);
// true true false
# 무한대 (-Infinity o)
let x = 1 / 0;
console.log(x, typeof x);
// Infinity number
# 숫자가 아닌 것 (-NaN x)
let x = 1 / 'abc';
let y = 2 * '가나다';
let z = NaN;
console.log(x, typeof x);
console.log(y, typeof y);
console.log(z, typeof z);
// NaN number
// NaN number
// NaN number
NaN인지 확인하는 방법
let x = 1 / 'abc';
console.log(
x,
x == NaN,
x === NaN,
isNaN(x), // 숫자가 아닐 시 true
Number.isNaN(x) // 보다 엄격한 버전
);
// NaN false false true true
//함수형으로 써줘야 NaN확인 가능
# 부동소수점 계산 오류
0.1+0.2
//0.3이 나오지 않고
//0.30000000000000004 이 나오게 됩니다.
이런 오류는 나중에 라이브러리를 사용해서 고칠 수 있으니 일단 알고 넘어갑시다.
# Truthy / Falsy
console.log(
1.23 ? true : false,
-999 ? true: false,
'0' ? true : false,
' ' ? true : false,
Infinity ? true : false,
-Infinity ? true : false,
{} ? true : false,
[] ? true : false,
);
//다 true
console.log(
0 ? true : false,
-0 ? true : false,
'' ? true : false,
null ? true : false,
undefined ? true : false,
NaN ? true : false,
);
//다 false
# ?? - null 병합 연산자
: || 와 달리, falsy가 아닌 null 또는 undefined만 대체
let a = false;
let b = 0;
let c = '';
let d = null;
let e;
console.log(
a ?? '기본값',
b ?? '기본값',
c ?? '기본값',
d ?? '기본값',
e ?? '기본값',
);
// false 0 '' '기본값' '기본값'
let x = 0;
let y = '';
let z = null;
x ||= 100; // x값이 false일 때만 뒤의 값 실행
y &&= '있어야 바뀜'; //y값이 true일 때만 뒤의 값 실행
z ??= '기본값'; //z값이 null or undefined일 때만 뒤의 값 실행
console.log(x, y, z);
// 100 '' '기본값'
참고
제대로 파는 자바스크립트(JavaScript) - by 얄코 - 인프런 | 강의
코알못도 따라올 수 있는 친절한 강좌! 현업 개발자는 자바스크립트 박사로 들어주는 끝판왕 강좌!, 한 번 수강하면 다른 강의가 필요 없도록제대로 JS에 파고들어 봐요 🛠️ 🎓 대학교 이메
www.inflearn.com
'FrontEnd > JavaScript' 카테고리의 다른 글
| [제대로 파는 자바스크립트] 1 - 3. copy of value VS copy of reference (0) | 2023.08.30 |
|---|---|
| [제대로 파는 자바스크립트] 1 - 1. 기본 명령어와 자료형 (0) | 2023.08.29 |