연산자
1. NaN이란?
Not a number를 의미한다.
숫자 계산할 경우 피연산자로 문자나 숫자가 아닌 값이 포함되어 있을 경우 숫자가 아니라는 의미인 NaN를 반환한다.
2. +단항 연산자
+단항 연산자는 숫자 타입에는 어떠한 효과가 없다.
하지만 숫자가 아닌 타입에 사용할 경우 숫자 타입으로 변환한다.
var x = '1';
console.log(+x) // 1
x = true;
console.log(+x) // 1
x = false;
console.log(+x) // 0
x = "Hello"
console.log(+x) //NaN
3. -단항 연산자
-는 숫자타입은 부호를 반전한다.
그리고 마찬가지로 숫자가 아닌 타입에 사용할 경우 숫자 타입으로 변환한다. 이때 부호를 반전한다.
-(-10) // 10
-'10' // -10
-true // -1
-'hello' //NaN
4. 문자열 연결 연산자
+ 연산자는 피연산자 중 하나 이상이 문자열인 경우 문자열 연결 연산자로 작동한다.
'1' + 2 // '12'
1 + true // 2
1 + false // 1
1 + null // 0
1 + undefined // NaN
5. 할당 연산자
var a, b, c;
a = b = c = 0;
console.log(a, b, c) // 0, 0, 0
a = b = c = 0 이 식에서 오른쪽에서 왼쪽으로 할당이 진행된다.
즉 c = 0 는 0으로 평가되고
b = 0 는 0으로 평가되고
a = 0으로 평가된다.
6. 동등/일치 비교 연산자
== 이것과 ===차이는 무엇일까?
== 동등비교는 좌항과 우항의 피연산자를 비교할 때 먼저 암묵적 타입 변환을 통해 타입을 일치시킨 후 같은 값인지 비교한다.
5 == 5; // true
5 == '5'; // true
=== 일치 비교 연산자는 좌항과 우항의 피연산자 타입도 같고 값도 같은 경우에만 true를 반환한다.
5 === 5; // true
5 === '5'; // false
여기서 NaN은 연산이 실패했을 때 나오는 값이다. 그렇기 때문에 자기 자신과 일치하지 않다고 판단한다.
NaN === NaN // false
7. 쉼표 연산자
, 연산자는 왼쪽 피연산자부터 차례대로 피연산자를 평가하고 마지막 피연산자의 평가가 끝나면 마지막 피연산자의 평가를 반환한다.
x = 1, y = 2, z = 3 // 3
8. typeof 연산자
데이터 타입을 문자열로 반환한다.

중요한 내용
1. == 이것과 ===차이는 무엇일까?
동등 비교 연산자는 암묵적 타입 변환을 통해 타입을 일치시킨 후 값을 비교합니다.
반면 일치 비교 연산자는 타입과 값이 같아야지 true를 리턴합니다.
'개인 학습 > 모던 자바스크립트 Deep Dive' 카테고리의 다른 글
모던 자바스크립트 Deep Dive 10장 (0) | 2025.02.20 |
---|---|
모던 자바스크립트 Deep Dive 9장 (0) | 2025.02.20 |
모던 자바스크립트 Deep Dive 6장 (0) | 2025.02.09 |
모던 자바스크립트 Deep Dive 5장 (0) | 2025.02.09 |
모던 자바스크립트 Deep Dive 4장 (1) | 2025.02.09 |