자바스크립트는 다른 언어와 다르게 자동적으로 타입을 변경해주는 기능이 있습니다.
이 기능은 잘 알고 있으면 편리하지만 잘 모르면 다양한 버그를 유발할 수 있으니 확실하게 알고 넘어 가도록 합시다.
+ 연산
console.log('I am ' + 23 + ' years old');
output :
![[자바스크립트 기초] Implicit Type Coercion - undefined - + 연산 [자바스크립트 기초] Implicit Type Coercion - undefined - + 연산](https://blog.kakaocdn.net/dn/0Dv7n/btrbpPnKOqm/BJEC5wKJ4GIuMdKSsDr5s0/img.png)
다른 언어 같은 경우 타입이 다른 값들을 연결했을때 타입 에러가 발생하는데요.
자바스크립트에서는 23 이라는 Number 타입을 String 타입으로 변경해 에러를 발생시키지 않습니다.
console.log('23'+'10' +3)
output :
![[자바스크립트 기초] Implicit Type Coercion - undefined - + 연산 [자바스크립트 기초] Implicit Type Coercion - undefined - + 연산](https://blog.kakaocdn.net/dn/bcCoD8/btrbqwaqNWr/8XUKatrecjGX8nkLqQeXi1/img.png)
마찬가지로 숫자이지만 string형태인 값들과 + 연산을 할때도 위와 같은 원리가 적용이 됩니다.
이때 여러분이 아셔야할것은 지금까지 해왔던건 + 연산이라는 것입니다.!
그럼 다른 연산은 어떻게 작동이 될까요?
- 연산
console.log('23'-'10' -3);
output :
![[자바스크립트 기초] Implicit Type Coercion - undefined - - 연산 [자바스크립트 기초] Implicit Type Coercion - undefined - - 연산](https://blog.kakaocdn.net/dn/EBDVi/btrbmyNBKJS/K1ycLPZuk03HWRvr6kbYK0/img.png)
- 연산에서는 모든 값이 string 으로 변경되는게 아니라 숫자로 변경되는 걸 알 수 있습니다.
참고로,
console.log('hello'-'10' -3);
- 연산을 하면서 숫자값이 아닌 'hello'같은 값을 넣게 되면, 당연히 숫자형태로 바꿀수 없으니,
![[자바스크립트 기초] Implicit Type Coercion - undefined - - 연산 [자바스크립트 기초] Implicit Type Coercion - undefined - - 연산](https://blog.kakaocdn.net/dn/bUybTi/btrbpP2p4fm/7fpujcdnbGkcmsJ7IhRhzk/img.png)
NaN 이라는 값을 반환합니다.
*(곱하기) , / (나누기), Boolean
console.log('23' * '2');
console.log('23' / '2');
console.log('23' > '2');
output :
![[자바스크립트 기초] Implicit Type Coercion - undefined - *(곱하기) , / (나누기), Boolean [자바스크립트 기초] Implicit Type Coercion - undefined - *(곱하기) , / (나누기), Boolean](https://blog.kakaocdn.net/dn/Nl7U7/btrbqu4LDxD/qwSx7XF1n9Hd5w89hOfAkK/img.png)
이 외에도 곱하기, 나누기 , boolean 연산들은 모두 String 을 Number형태로 자동으로 바꾼다는거 챙겨 가시기 바랍니다.
'자바스크립트' 카테고리의 다른 글
[자바스크립트 기초] " || && 는 어떤 기능을 할까 ?" (short Circuiting) (0) | 2021.12.27 |
---|---|
[자바스크립트 기초] == vs === 차이 (0) | 2021.08.08 |
[자바스크립트 기초] if | else 조건문 (0) | 2021.06.05 |
[자바스크립트 기초] 문자열(string)| 변수 합치기 (0) | 2021.06.05 |
[자바스크립트 기초] 문자열(string) 여러줄 쓰기 | multi line (0) | 2021.06.05 |
댓글
꼬예님의
글이 좋았다면 응원을 보내주세요!
이 글이 도움이 됐다면, 응원 댓글을 써보세요. 블로거에게 지급되는 응원금은 새로운 창작의 큰 힘이 됩니다.
응원 댓글은 만 14세 이상 카카오계정 이용자라면 누구나 편하게 작성, 결제할 수 있습니다.
글 본문, 댓글 목록 등을 통해 응원한 팬과 응원 댓글, 응원금을 강조해 보여줍니다.
응원금은 앱에서는 인앱결제, 웹에서는 카카오페이 및 신용카드로 결제할 수 있습니다.