자바스크립트에서의 연산자
연산자
증가/감소
전위 연산자 - 피연산자 값을 먼저 계산하고, 다음 연산을 수행한다.
후위 연산자 - 다른 연산을 수행하고, 피연산자의 값을 계산한다.
숫자 타입이 아닌 피연산자에 +,-
를 사용하게 되면 숫자 타입
으로 변환된다.
문자열 연결
+
연산자는 피연산자 중 하나 이상이 문자열이면 문자열 연결 연산자로 동작한다.
비교 연산자
==
연산자는 자바스크립트 엔진에 의해 암묵적으로 타입을 일치시킨 후 같은 값인지 비교한다. 그러므로 자바스크립트에서는 ==
연산자는 사용하지 않는 편이 좋다.
===
연산자를 이용함으로써 타입도 같고 값도 같은 경우에만 참값을 반환한다.
NaN
은 Not a number(숫자가 아님)의 줄임말로 브라우저에서 설정 불가, 쓰기 불가로 사용되는 속성이다. Number.isNaN()
또는 isNaN()
을 사용하여 판별할 수 있다.
- 숫자로서 읽을 수 없음 (parseInt("어쩌구"), Number(undefined))
- 결과가 허수인 수학 계산식 (Math.sqrt(-1))
- 피연산자가 NaN (7 ** NaN)
- 정의할 수 없는 계산식 (0 * Infinity)
- 문자열을 포함하면서 덧셈이 아닌 계산식 ("가" / 3)
isNaN(1) // false
isNaN('abc') // true
isNaN(null) // false
isNaN() vs Number.isNaN()
NaN을 판별하는데 쓰이지만 차이가 있다.
isNaN('hello world'); // true
Number.isNaN('hello world'); // false
isNaN()은 인자로 들어온 값이 NaN 이거나 숫자
로 변환했을 때 NaN이면 true
를 리턴한다.
Number.isNaN()은 인자로 들어온 값이 NaN이어야만 true
를 리턴한다.
typeof
typeof null은 object
로 반환되기에 주의해야 한다. null 타입을 확인하기 위해서는 ===
연산자를 이용하자.