타입 변환과 단축 평가

정지훈·2020년 11월 24일
0

자바스크립트의 모든 값은 타입이 있다. 값의 타입은 개발자의 의도에 따라 다른 타입으로 변환할 수 있다.
개발자가 의도적으로 값의 타입을 변환하는 것을 명시적 타입 변환 또는 타입 캐스팅이라 한다.

var x = 10;

// 명시적 타입 변환
// 숫자를 문자열로 타입 캐스팅한다.
var str = x.toString();
console.log(typeof str, str); // string 10

// x 변수의 값이 변경된 것은 아니다.
console.log(typeof x, x); // number 10

아래는 암묵적인 타입 변환이다.

var x = 10;

// 암묵적 타입 변환
// 문자열 연결 연산자는 숫자 타입 x의 값을 바탕으로 새로운 문자열을 생성한다.
var str = x + '';
console.log(typeof str, str); // string 10

// x 변수의 값이 변경된 것은 아니다.
console.log(typeof x, x); // number 10

이런 식으로 암묵적인 타입 변환을 일으키는데 사실 암묵적인 타입 변환이 더 가독성이 좋아서 나는 이걸 더 선호한다.

문자열 타입으로 변환 하고 싶으면

1 + '' 이런 식으로 암묵적으로 문자열 타입 변환을 시켜 주면 되고

문자열인 '1'이것을 앞에 +붙이면 암묵적으로 숫자 타입으로 변경되지만 숫자열로 변환이 불가능 한 것은 NaN을 반환한다.

그 중 불가능 할 거 같다고 생각이 드는 타입 중 가능한 것은 불리언타입
+true는 1을 반환하고 +false는 0을 반환한다.
빈배열을 숫자 타입으로 변환하면 0을 반환한다.

단축 평가

논리 연산자에서 살펴보았듯이 단축 평가로 사용할 수 있다.

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

이처럼 and연산자는 두 개의 피연산자가 모두 true로 평가될 때 true를 반환한다 좌항에서 true면 우항까지 true일시 우항의 평가 결과를 결정한다.

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

논리합연산자는 두 개 피연산자 중 하나만 true로 평가되어도 true를 반환한다. 그래서 좌항이 true면 좌항을 그대로 반환한다.

이 두개를 사용해서 if..else문을 대체할 수 있다.

0개의 댓글

관련 채용 정보