지난 시간에 한 번 다뤄본 적이 있지만, 자바스크립트에는 다양한 데이터 타입이 존재하며 이 타입 들은 각각 고유의 특징들을 가지고 있다. 그렇기 때문에 각 타입의 특징을 이해해야 코딩을 조금 더 수월하게 짤 수 있고 자료 구조와 맥락이 어느 정도 이어지기에 자유롭게 타입 들을 변환하고 다룰 줄 알아야 한다.
타입을 변환하는 방법에는 2가지가 존재하는데, 하나는 명시적 타입 변환 or 타입 캐스팅
다른 하나는 암묵적 타입 변환 or 타입 강제 변환
이다. 전자는 단어 뜻에서도 알 수 있듯이 개발자의 의도 하에
타입 변환이 일어나는 반면, 후자는 방법이라고 하기에는 애매한 부분이 있는 것이 암묵적으로 타입 변환이 진행
되지만 개념적으로 개발자가 인지를 하고 있기에 방법이라고 해도 무색하다.
(이러한 암묵적 타입 변환으로 인해 근래 타입스크립트가 유행처럼 번지고 있다)
// 명시적 타입 변환의 예
let x = 10; // number
let xStr = x.toString();
console.log(xStr); // "10"
// 암묵적 타입 변환의 예
let x = 10; // number
let newX = x+""; // newX is string "10"
⇒ 여기서 한 가지 알아둬야 할 것이 있는데, 명시적이던 암묵적이던 본래의 변수 x에 할당된 값은 변하지 않는다.
let x = 1
// To String
x + "" // 암묵적 string으로 변환
x.toString() // 명시적 string으로 변호나
// To Number
x - '1' // 암묵적 Number 0
Number('10') // 명시적 Number 10
// To Boolean
if ('str') console.log(true) // 차 있는 문자열은 암묵적 true
Boolean(0) // false 명시적 boolean