형변환에는 명시적 형변환(type conversion)도 있지만, 강제적 형변환(type coercion)도 존재하게 됩니다.
명시적 형변환(type conversion)이란, 명시적으로 어떤 변수 형태를 바꿀지 결정하게 됩니다.
console.log('I am ' + String(25) + ' years old');
이 경우 25인 number가 String 으로 명시적 형변환을 하게 되어 문자열로 인식하게 됩니다.
강제적 형변환(type coercion) 도 존재하게 됩니다.
console.log('I am ' + 25 + ' years old');
+ 연산은 모든 것을 숫자로 바꾸는 것은 아니다.
이 경우 문자열(String) + 숫자 + 문자열(String)이 되기 때문에
가운데 있는 숫자가 강제 형변환이 되어 문자열로 인식하게 되어 하나의 String으로 인식하게 됩니다.
console.log('I am ' + '25' + ' years old');
console.log('25' - '10' - 3);
위와 같은 예시는 - 연산자를 사용하고 있는데 이 경우, 숫자로 인식하여 결과는 number 형태인 12를 출력하게 됩니다.
console.log('25' + '10' + 3);
반대로 + 연산자를 사용할 경우, 다시 String 형태로 인식하게 되어 String 형태인 25103으로 출력하게 됩니다.
let n = '1' + 1;
n = n - 1;
console.log(n);
마찬가지로 변수 n을 문자열과 + 연산자를 이용하면 뒤에 있는 1을 String으로 인식하게 되어 11이 되고
11 - 1이라는 결과로 인해 10이 출력되게 됩니다.
'10' - '4' - '3' - 2 + '5'
+ 연산자를 만나기 전까지는 number로 인식하게 되어 결과가 1이 되다가 + 연산자를 만나서
String 형태인 15가 되게 됩니다.
'Language > JavaScript' 카테고리의 다른 글
[JavaScript] 화살표 함수(arrow fuction) (0) | 2021.01.05 |
---|---|
[JavaScript] === 와 == 의 차이 (0) | 2021.01.05 |
[JavaScript] 스프레드(spread) 문법 (0) | 2020.09.23 |
[JavaScript] 호출 스택과 이벤트 루프 (0) | 2020.09.19 |
[JavaScript] for, forEach (0) | 2020.09.14 |
댓글