본문 바로가기

Programming/JavaScript

Type Conversion and Coercion

Type Conversion은 manually convert함

Coercion은 자바스크립에서 자동으로 변환해줌

 

Type Conversion

const inputYear = '1991';
console.log(inputYear + 18);
// prints 199118

inputYear가 string이기 때문에

그대로 이어 붙여서 199118이 콘솔에 찍힘

 

참고로 Type Conversion할 때 Number 첫 글자 대문자로 해줘야 함

const inputYear = '1991';
console.log(Number(inputYear), inputYear);
// prints 1991 '1991'
console.log(Number(inputYear) + 9);
// 2000

참고로 데이터 타입에 따라 콘솔에 찍히는 컬러가 다름 :)

 

Type Coercion

console.log('I am ' + 33 + ' yeard old')
// prints I am 33 yeard old

여기서 33 yeard old라고 프린트되는 이유는

자바스크립트에서 + operator를 넣으면 자동으로 Type Coercion을 해주기 때문

즉, 33는 number지만 string으로 변환해서 같이 출력함

덕분에 String(33) 이런 식으로 Type Conversion을 안해줘도 됨

 

but Type Coercion이 항상 적용되는 건 아님! ⭐️⭐️⭐️

console.log('23' - '10' - 3);
// prints 10

console.log('23' + '10' + 3);
// prints 23103

console.log('23' * '2');
// prints 46

- operator는 string을 number로 변환해서 산수 계산이 됐지만

+ operator는 string 값을 이어 붙이기만 한걸 볼 수 있음

 

let n = '1' + 1;
n = n - 1;
console.log(n);
// prints 10

n을 1이랑 1 붙이니까 11 string이 됨

n 11에서 1을 빼니까 10일 출력된다

-는 string을 number로 변환하니까 빼기 산수를 한거임