let age = "20";
let currentYear = 2022;
currentYear - age;
//expected answer : undefined or Error 발생이겠지?
*그렇게 생각한 이유:
1) age는 string 이고 currentYear는 number이다.
서로 다른 데이터 타입이기 때문에 연산이 되지 않을거라고 생각했다.
콘솔창에 확인차 해보니 결과는...2002. 계산이 되서 나오네요. ㅇ_ㅇ;;?
콘솔로그에 확인차 다른 값들도 넣어보다가 이상한 결과를 발견했습니다.
concation: string과 number를 더하면
substract: string과 number를 서로 빼면
- console.log(”2022”- 2)하면 결과 값은 2022 입니다. 우리가 생각하는 연산이 되네요.
- typeof를 사용하여 확인하니 데이터의 타입은 숫자입니다. ...문자열이 아니네요.
문자열과 숫자를 합치거나(+), 숫자와 문자열을 뺄때(-)로 왜 데이터 종류가 달라지나요????????
하지만 예를 들어서 실수로 문자열을 받아오게 된다면?? 숫자 계산을 하고 싶어진다면???
String → Number로 바꿔주는 작업해주기 (참고사이트)
대표적으로 쓰이는 방법 (참고사이트 7가지 방법이 있지만 대표적인 것만 추려봄)
근데..실무에서 이런 일이 있을까...요? ..... 궁금해지네요.
멘토님한테 물어보니,
자바스크립트는 타입이 약한 타입이라서, 가끔 저런 현상이 일어난다고 한다.
그래서 가급적이면, 문자열에서 숫자를 뺴거나 숫자에서 문자열을 빼는 행위는 지양한다고 한다.