될때까지

JavaScript study :: 형변환 본문

학습/JavaScript, TypeScript

JavaScript study :: 형변환

랖니 2022. 3. 14. 13:16
728x90
const mathScore = prompt("수학 : ");   // 90 입력
const engScore = prompt("영어 : ");	 // 80 입력
const result = (mathScore + engScore) / 2

console.log(result)    // 결과값은 4540...???

 

세상에 이게 뭔... 기괴한 일이람!? 😳 자바스크립트는 파이썬보다 더 유연한? 언어인가보다.

90과 80을 입력했으니 85가 리턴될 줄 알았다. 하지만 prompt로 입력받은 값은 무조건 String 문자열이라고 하네?

오호라 그렇다면 에러를 리턴하겠지 왜냐 문자를 더하는 건 가능해도, 나누기가 어떻게 가능해?

하지만 나의 예상은 보기좋게 틀렸고, 4540을 리턴했다.

 

1. 암시적 변환

자바스크립트는 문자열 90과 80을 더한 9080을 자동으로 숫자로 형변환을 하고, 나누기 연산을 실행한다. 이를 자바스크립트에서는 암시적 변환이라고 한다. 즉, 자바스크립트가 자동으로 데이터 타입을 변환시킨다는 뜻. wooow 놀라워라

 

2. 명시적 변환

하지만 저렇게 암시적 변환이 되면 당연히 헷갈리지 않겠는가.. 그래서 형변환을 직접 개발자가 바꿔주기도 하는 데, 이를 명시적 변환이라고 한다. 명시적 변환이야 파이썬에서도 자주 했던 방식이라 이해하는 게 어렵지 않았다. 추가적으로 암기가 필요한 부분들이 있었는데, 까먹지 않게끔 블로그에 정리해두고 넘어가자. 암기가 아니라 익숙해지는 게 목표다😊

String()     문자형으로 형변환
Number()      숫자형으로 형변환
      * Number("문자열이 들어왔습니다.")    >> 리턴값 : NaN
      * Number(null)     >> 리턴값 : 0
      * Number(undefined).  >> 리턴값 : NaN
Boolean()     불린형으로 형변환
      * 0, "", null, undefined, NaN   >> 리턴값 : false
      * Boolean('0'), Boolean(" ")   >> 리턴값 : true

 

 

* 참고한 유튜브 강의 : 코딩앙마

 

728x90