모던 자바스크립트 Deep Dive 7장

홍범선·2025년 2월 4일
0

모던자바스크립트

목록 보기
6/6

연산자

NaN이란

Not a number를 의미한다. 숫자 계산할 경우 피연산자로 문자나 숫자가 아닌 값이 포함되어 있을 경우 숫자가 아니라는 의미인 NaN를 반환한다.

+단항 연산자

+단항 연산자는 숫자 타입에는 어떠한 효과가 없다.
하지만 숫자가 아닌 타입에 사용할 경우 숫자 타입으로 변환한다.

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

-단항 연산자

-는 숫자타입은 부호를 반전한다.
그리고 마찬가지로 숫자가 아닌 타입에 사용할 경우 숫자 타입으로 변환한다. 이때 부호를 반전한다.

-(-10) // 10
-'10' // -10
-true // -1
-'hello' //NaN

문자열 연결 연산자

+ 연산자는 피연산자 중 하나 이상이 문자열인 경우 문자열 연결 연산자로 작동한다.

'1' + 2 // '12'

1 + true // 2

1 + false // 1

1 + null // 0

1 + undefined // NaN

여기서 타입이 다를 경우 자바스크립트 엔진에 의해 암묵적으로 타입이 변환되기도 한다.

할당 연산자

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으로 평가된다.

동등/일치 비교 연산자

== 이것과 ===차이는 무엇일까?

== 동등비교는 좌항과 우항의 피연산자를 비교할 때 먼저 암묵적 타입 변환을 통해 타입을 일치시킨 후 같은 값인지 비교한다.

5 == 5; // true
5 == '5'; // true

=== 일치 비교 연산자는 좌항과 우항의 피연산자 타입도 같고 값도 같은 경우에만 true를 반환한다.

5 === 5; // true
5 === '5'; // false

여기서 NaN은 연산이 실패했을 때 나오는 값이다. 그렇기 때문에 자기 자신과 일치하지 않다고 판단한다.

NaN === NaN // false

쉼표 연산자

, 연산자는 왼쪽 피연산자부터 차례대로 피연산자를 평가하고 마지막 피연산자의 평가가 끝나면 마지막 피연산자의 평가를 반환한다.

x = 1, y = 2, z = 3 // 3

typeof 연산자

데이터 타입을 문자열로 반환한다.

면접 예상 질문

== 이것과 ===차이는 무엇일까?

동등 비교 연산자는 암묵적 타입 변환을 통해 타입을 일치시킨 후 값을 비교합니다.
반면 일치 비교 연산자는 타입과 값이 같아야지 true를 리턴합니다.

profile
알고리즘 정리 블로그입니다.

0개의 댓글