인지용

자바스크립트 연산자 (1) 본문

자바스크립트

자바스크립트 연산자 (1)

인지용 2021. 9. 23. 00:21

연산의 대상을 피연산자라 한다.

피연산자는 값으로 평가될 있는 표현식이어야 한다.

 

즉 값이 있는 변수이거나, 함수여도 리턴 값이 있는 함수여야 함

 

+ 연산자

문자열 ‘1’ 앞에다가 + 하면

숫자 타입으로 변환하여 반환한다.

 

( 문자열을 숫자로 변환할 수 없을 땐 NaN을 반환 )

 

이때 피연산자를 변경하는 것은 아니고 

숫자 타입으로 변환한 값을 생성해서 반환한다

 

1 + true를 연산하면 자바스크립트 엔진에 의해 암묵적으로 타입이 자동 변환돼서

true를 숫자 타입인 1로 강제 변환시킨 후 계산한다.

 

이를 암묵적 타입 변환 or 타입 강제 변환이라고 한다.

 

동등 비교(==) 연산자와 일치 비교(===) 연산자

동등 비교(==) 연산자는

비교할 때 암묵적 타입 변환을 통해

타입을 일치시킨 후 같은 값인지 비교.

단점 : 편리한 경우도 있지만 결과를 예측하기 어렵다

 

 

일치 비교(===) 연산자는

타입도 같고 값도 같은 경우에만 true 반환한다.

따라서 예측하기 쉽다.

 

하지만

0 === -0 // true

0 == -0 // true

이런 결과가 나오기 때문에

 

정확한 비교 결과를 원하면

ES6에서 도입된 Object.is 메서드를 사용하는 게 좋다.

Object.is(0, -0) // false

 

IsNaN 함수

NaN은 자신과 일치하지 않는 유일한 값이다.(NaN == NaN -> false)

따라서 숫자가 NaN인지 확인하려면

빌트인 함수 isNaN을 사용한다. isNaN(NaN);

isNaN(NaN, NaN); // true

 

Object.is 함수도 사용가능

Object.is(NaN, NaN); // true

 

 

 

 

출처 : 모던 자바스크립트 Deep dive