[JS] #3 연산자

홍민기·2022년 10월 2일
0

JS

목록 보기
3/5

7.1 산술 연산자

'+' 연산자는 피연산자 중 하나 이상이 문자열인 경우 문자열 연결 연산자로 동작한다. 그 외의 경우에는 산술 연산자로 동작한다. 다음은 예시이다.

'1' + 2; // '12'
1 + true; // 2

이 예제에서 주목할 것은 개발자의 의도와는 상관없이 자바스크립트 엔진에 의해 암묵적으로 타입이 자동 변환되기도 한다는 것이다. 위 예제에서 1+true를 연산하면 자바스크립트 엔진은 암묵적으로 boolean 값인 true를 숫자 타입인 1로 타입을 강제로 변환 후 연산을 수행한다.
이를 암묵적 타입 변환 또는 타입 강제 변환 이라고 한다.



7.3 비교 연산자

동등 비교 연산자와 일치 비교 연산자는 좌항과 우항의 피연산자가 같은 값으로 평가되는지 비교해 boolean 값을 반환한다. 이때 비교하는 엄격성의 정도가 다른데, 동등 비교(==)는 값이 같으면 true를 반환하며 일치 비교(===)는 값과 타입이 같아야 true를 반환한다.
동등 비교 연산자는 좌항과 우항의 피연산자를 비교할 때 먼저 암묵적 타입 변환을 통해 타입을 일치시킨 후 같은 값인지 비교한다.
일치 비교 연산자는 주의할 점이 있는데 바로 NaN이다.

Nan === Nan; // -> false

NaN은 자신과 일치하지 않는 유일한 값이다. 따라서 숫자가 NaN인지 조사하려면 빌트인 함수 Number.isNan()을 사용한다.

Number.isNan(Nan); // true
Number.isNan(10); // false
Nubmer.isNan(1 + undefined); // true


7.4 삼항 조건 연산자

삼항 조건 연산자 표현식은 if ... else 문과 유사하지만 중요한 차이가 있다. 삼항 조건 연산자 표현식은 값처럼 사용할 수 있다. 따라서 삼항 조건 연산자 표현식은 값처럼 다른 표현식의 일부가 될 수 있어 유용하다.

var result = x % 2 ? '홀수' : '짝수' ;


7.8 typeof 연산자

typeof 연산자는 피연산자의 데이터 타입을 문자열로 반환한다. typeof 연산자로 null 값을 연산해보면 "null"이 아닌 "object"를 반환하는데, 이는 JS 첫 번째 버전의 버그이다. 따라서 값이 null 타입인지 확인할 때는 typeof 연산자를 사용하지 말고 일치 연산자를 사용해야 한다.

typeof foo === null; // -> false
foo === null; // -> true


7.9 지수 연산자

ES7에서 도입된 지수 연산자는 좌항의 피연산자를 밑으로, 우항의 피연산자를 지수로 거듭 제곱하여 숫자 값을 반환한다.

2 ** 2; // -> 4
(-5) ** 2; // -> 25


profile
안녕 :P

0개의 댓글