인지용

자바스크립트 타입 변환과 단축 평가 본문

자바스크립트

자바스크립트 타입 변환과 단축 평가

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

원시 값은 변경 불가능한 값이다.

 

타입 변환

타입 변환이란 기존 원시값을 사용해 

다른 타입의 새로운 원시 값을 생성하는 것이다.

( a라는 변수에 선언된 값을 가지고 다른 타입의 같은 값을 생성 )

 

 

암묵적 타입 변환

암묵적 타입 변환은 기존 변수값을 변경하는 게 아니라

 

자바스크립트 엔진이 에러 없이 평가하기 위해

피연산자의 값을 암묵적으로 변환해 새로운 타입의 값을 만들어

단 한 번 사용하고 버린다.

 

개발자는 암묵적 타입변환이 발생하는지, 발생하면 어떤 타입으로

바뀌는지 등등 예측 가능해야 오류를 범할 가능성이 낮아진다.

 

중요한 건코드를 예측할 있어야 한다는 것이다

 

단축 평가

단축 평가 : 평가 도중 평가 결과가 확정되면 나머지 평가 과정을 생략하는 것을 말함

 

 

논리 연산자를 사용한 단축 평가

논리곱(&&) 연산자와 논리합( || ) 연산자 표현식의 평가 결과는

불리언 값이 아닐 수도 있다.

 

논리곱(&&) 연산자는 좌항에서 우항으로 평가가 진행되는데

'Cat' && 'Dog'      // -> "Dog"

결과를 결정하는 피연산자를 반환한다.

 

논리합( || ) 연산자도 좌항에서 우항으로 진행하고

제일 먼저 true로 평가된 값을 반환한다.

'Cat' || 'Dog'      // -> "Cat"

 

이처럼 두 연산자는 타입을 변환하지 않고 그대로 반환한다.

 

 

단축 평가 장점

단축 평가를 사용하면 if문을 대체할 수 있다.

 

true일 때 무언가 하려면

var done = true;
var message = ‘’;

// 주어진 조건이 true 일때
if ( done ) message = '완료';

// if문은 단축 평가로 대체 가능하다
// done이 true라면 message에 '완료'를 할당
message = done && ‘완료’; 
console.log(message); // 완료

 

false일 때 무언가 하려면

var done = false;
var message = ‘’;

// 주어진 조건이 false일 때
if ( !done ) message = '미완료';

// if 문은 단축 평가로 대체 가능하다
// done이 false라면 message에 '미완료'를 할당
message = done || ‘미완료’; 

console.log(message) // 미완료

 

 

true 일 때 무언가를 해야 하면 논리곱(&&) 연산자 사용

false 일때 무언가를 해야하면 논리합( || ) 연산자 사용

 

 

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