2019-04-14_TIL

2019년 4월 14일 (일)

자바스크립트의 형변환 중에 묘하게 작동하는 부분을 알게 되다.

  • 자바스크립트의 형변환을 공부하면서 parseInt와 만났을때
    묘하게 작동하는 부분을 알게 되어 공유하고자 한다.

  • ab는 문자열이고 12는 숫자인데 이 둘을 이어붙인 문자열을 변수 strNum에 담았다.

  • 문자열"ab12"를 parseInt로 정수로 변환한 결과를 console.log로 화면에 출력해보면 어떤 값이 나올까?
1
2
3
const strNum = "ab12";
console.log(parseInt(strNum)); // NaN
console.log(typeof strNum); // string
  • ab12라는 숫자값이 없기 때문에 NaN이 출력 된다.
  • 타입은 그대로 string이다.
  • 이번에는 숫자 12를 앞에, 문자열 ab를 뒤에 이어붙인 문자열을 변수 numStr에 담았다.
  • 타입은 string인 “12ab”를 parseInt로 정수로 변환한 결과를 출력해보면,
    위의 예제처럼 이번에도 NaN이 나올까?
1
2
3
const numStr = "12ab";
console.log(parseInt(numStr)); // 12
console.log(typeof strNum); // string
  • 엇? 예상과 다르게 정수 12가 출력된다.
  • 타입은 string이 나온다.

  • 자바스크립트에서 형변환을 할때는 이렇게 우리의 의도와는 다르게
    작동하는 경우가 있기 때문에 주의를 기울일 필요가 있다.