자바스크립트의 모든 값은 타입이 있다.
값의 타입은 개발자의 의도에 따라, 다른 타입으로 변경할 수 있다.
개발자가 의도적으로 값의 타입을 변경하는 것을 명시적 타입 변환이라고 한다.
var x = 10;
//명시적 타입 변환
//숫자를 문자열로
var str = x.toString();
console.log(typeof(str)); //string 10
개발자의 의도와 상관없이, 표현식 평가 과정에서 자바스크립트 엔진에 의해 타입이 자동변환되기도 한다. (암묵적 타입 변환)
var x = 10;
//암묵적 타입 변환
//x의 값을 바탕으로 새로운 문자열 생성
var str = x + '';
console.log(typeof(str)); //string
//x변수의 값이 변경된 것은 아니다
console.log(typeof(x)); //number
암묵적 타입 변환이 기존 원시값(위의 예제에서는 x)을 변경하는 것은 아니다.
원시 값은 변경 불가능 한 값이므로, 변경할 수 없다.
기존 원시 값을 바탕으로 새로운 다른 타입의 값을 생성하는 것이다.
-암묵적 타입 변환의 다른 예시들-
'10' + 2; //-> '102'
5 * '10' // -> 50
!0 - >true