Javascript

모던 자바스크립트 Deep Dive 읽기 - 9장 : 타입 변환과 단축 평가

띵킹 2022. 3. 10. 02:22

자바스크립트의 모든 값에는 타입이 존재하며, 이는 개발자의 의도에 따라 다른 타입으로 변환할 수 있다. 

그러나 자바스크립트는 값을 평가하는 도중에 암묵적으로 타입이 변환되기도 한다. 

이러한 상황을 피하기 위해, 명시적 타입 변환만을 사용해야 할까? 자바스크립트의 타입 변환을 제대로 이해한다면, 명시적 타입 변환보다 암묵적 타입 변환이 가독성 측면에서 더 좋을 수도 있다. 이를 위해 암묵적 타입 변환을 잘 이해해야만 한다. 

 

산술 연산자와 비교 연산자는, 대체로 자신이 주어진 역할을 수행하기 위한 타입 변환을 진행하고, 이는 제어문 또한 마찬가지다. 

제어문의 조건식에서는 논리적 참/거짓을 따지기 위해 값을 불리언 타입으로 변환하는데, 거짓으로 평가되는(Falsy 값) false, undefined, null, 0, NaN, ''(공백)을 제외한 모든 값은 참으로 평가된다.

 

논리합||과 논리곱&& 연산자는, 연산의 결과를 결정하는 피연산자를 타입 변환하지 않고 그대로 변환하며, 이를 이용한 프로그래밍 기법을 단축 평가라고 한다. 

 

ES11에서 도입된 옵셔널 체이닝 연산자?.는 좌항의 피연산자가 null 또는 undefined인 경우, undefined를 반환하여 에러가 발생하는 상황을 피할 수 있다.  

null 병합 연산자??는 좌항의 피연산자가 null 또는 undefined인 경우에 우항의 피연산자를 반환하여 변수에 기본값을 설정할 때 유용하다.

728x90