자바스크립트 숫자 변환 완전 정복! NaN? parseInt? Number()? 헷갈리는 당신을 위해!

안녕하세요! 오늘은 자바스크립트에서 숫자 변환에 대해 속 시원하게 파헤쳐보는 시간을 가져볼 거예요. 개발을 하다 보면 문자열로 된 숫자를 진짜 숫자로 바꿔야 할 때가 정말 많죠? 그런데 이게 생각보다 까다로울 때가 있어요. NaN이 튀어나오기도 하고, parseInt랑 Number() 중에 뭘 써야 할지 고민될 때도 있구요. 그래서 준비했습니다! 이 글 하나로 자바스크립트 숫자 변환, 완벽하게 마스터해 보세요!

자바스크립트 숫자 변환, 왜 중요할까요?

자바스크립트는 웹 페이지를 동적으로 만들어주는 아주 강력한 언어죠. 사용자의 입력을 처리하고, 데이터를 계산해서 보여주는 등 다양한 역할을 수행하는데요. 이때 사용자의 입력은 대부분 문자열 형태로 들어오게 됩니다. 예를 들어, 폼에서 숫자를 입력받더라도 자바스크립트는 기본적으로 문자열로 인식해요. 하지만 우리가 이 값을 가지고 계산을 하려면 어떻게 해야 할까요? 당연히 숫자로 바꿔줘야겠죠! 이처럼 자바스크립트에서 숫자 변환은 데이터 처리의 기본이라고 할 수 있습니다.

뿐만 아니라, API에서 데이터를 받아올 때도 문자열 형태로 숫자가 오는 경우가 많아요. 이 데이터를 가지고 그래프를 그리거나, 다른 연산을 수행하려면 반드시 숫자 변환이 필요하죠. 따라서 자바스크립트 개발자라면 숫자 변환에 대한 이해는 필수라고 할 수 있습니다.

지금 확인하지 않으면 놓칠 수 있습니다. 자바스크립트 숫자변환에 대해 더 많은 정보 알아보기!

바로 확인하기

parseInt(): 정수 변환의 핵심

parseInt()는 문자열을 정수로 변환해주는 함수입니다. 아주 기본적인 함수이지만, 제대로 이해하고 사용해야 예상치 못한 오류를 방지할 수 있어요. parseInt()는 문자열의 앞에서부터 숫자를 읽어가다가, 숫자가 아닌 문자를 만나면 그 앞에서 끊고 숫자로 변환합니다. 만약 문자열이 숫자로 시작하지 않으면 NaN을 반환하죠.

예를 들어볼까요? parseInt("123")123을 반환합니다. parseInt("123px")는 어떨까요? 123을 반환합니다. “px”라는 문자를 만나기 전까지 숫자를 읽어서 변환해주는 거죠. 그렇다면 parseInt("px123")은요? NaN을 반환합니다. 숫자로 시작하지 않았기 때문이죠.

parseInt()의 중요한 특징 중 하나는 진법을 지정할 수 있다는 점입니다. parseInt(string, radix) 형태로 사용하는데, radix는 2부터 36까지의 값을 가질 수 있어요. 예를 들어, parseInt("10", 2)는 2진수 “10”을 10진수로 변환한 값인 2를 반환합니다. parseInt("FF", 16)은 16진수 “FF”를 10진수로 변환한 값인 255를 반환하죠. 진법을 지정하지 않으면 문자열이 “0x”로 시작할 경우 16진수로 간주하고, 그 외에는 10진수로 간주합니다. 하지만 명시적으로 진법을 지정해주는 것이 더 안전하고 가독성이 좋은 코드를 만들 수 있습니다.

Number(): 엄격한 숫자 변환

Number()는 문자열을 숫자로 변환해주는 또 다른 함수입니다. parseInt()와는 다르게, 문자열 전체가 숫자로 이루어져 있어야 제대로 변환해줍니다. 만약 문자열에 숫자 외의 문자가 포함되어 있다면 NaN을 반환하죠. Number("123")123을 반환하지만, Number("123px")NaN을 반환합니다.

Number()는 불리언 값도 숫자로 변환할 수 있습니다. Number(true)1을 반환하고, Number(false)0을 반환하죠. 또한, null0으로, undefinedNaN으로 변환됩니다.

Number()parseInt()보다 더 엄격한 변환을 수행하기 때문에, 문자열이 정확히 숫자를 나타내는지 확인해야 할 때 유용합니다. 예를 들어, 사용자가 입력한 값이 숫자인지 검증할 때 Number()를 사용하면, 숫자 외의 문자가 포함된 입력은 걸러낼 수 있습니다.

parseFloat(): 부동 소수점 변환

parseFloat()는 문자열을 부동 소수점 숫자로 변환해주는 함수입니다. parseInt()와 비슷하게, 문자열의 앞에서부터 숫자를 읽어가다가, 숫자가 아닌 문자를 만나면 그 앞에서 끊고 숫자로 변환합니다. 하지만 parseInt()와는 다르게, 소수점을 포함한 숫자도 변환할 수 있다는 장점이 있죠. parseFloat("3.14")3.14를 반환하고, parseFloat("3.14px")3.14를 반환합니다.

parseFloat()는 지수 표기법으로 표현된 숫자도 변환할 수 있습니다. 예를 들어, parseFloat("1.23e+2")123을 반환합니다. 지수 표기법은 아주 큰 숫자나 아주 작은 숫자를 표현할 때 유용하게 사용되죠.

parseFloat()는 웹 페이지에서 사용자로부터 실수 값을 입력받을 때 유용하게 사용할 수 있습니다. 예를 들어, 상품의 가격이나 무게 등을 입력받을 때 parseFloat()를 사용하면, 소수점을 포함한 값을 정확하게 처리할 수 있습니다.

단항 더하기 연산자(+): 간편한 숫자 변환

자바스크립트에서는 단항 더하기 연산자(+)를 사용하여 문자열을 숫자로 간편하게 변환할 수 있습니다. +"123"123을 반환하고, +"3.14"3.14를 반환합니다. 단항 더하기 연산자는 Number()와 비슷한 방식으로 동작하며, 문자열 전체가 숫자로 이루어져 있어야 제대로 변환해줍니다. 만약 문자열에 숫자 외의 문자가 포함되어 있다면 NaN을 반환하죠.

단항 더하기 연산자는 코드를 간결하게 만들어주지만, 가독성을 해칠 수 있다는 단점도 있습니다. 따라서 팀원들과의 코드 스타일 규칙을 정하고, 일관성 있게 사용하는 것이 중요합니다.

실제로 많은 자바스크립트 개발자들이 단항 더하기 연산자를 사용하여 문자열을 숫자로 변환합니다. 특히, 짧은 스크립트나 간단한 계산을 수행할 때 유용하게 사용할 수 있습니다.

NaN: Not a Number, 숫자가 아니다!

NaN은 “Not a Number”의 약자로, 숫자가 아님을 나타내는 값입니다. 자바스크립트에서 숫자로 변환할 수 없는 값을 변환하려고 할 때 NaN이 반환됩니다. 예를 들어, parseInt("abc"), Number("abc"), +"abc"는 모두 NaN을 반환하죠.

NaN의 가장 큰 특징은 어떤 값과 비교해도 같지 않다는 점입니다. 심지어 자기 자신과도 같지 않아요. 즉, NaN === NaNfalse를 반환합니다. 따라서 NaN인지 확인하려면 isNaN() 함수를 사용해야 합니다. isNaN(NaN)true를 반환하고, isNaN(123)false를 반환합니다.

NaN은 자바스크립트에서 계산 오류를 나타내는 중요한 값입니다. 따라서 NaN이 발생했을 때는 오류의 원인을 파악하고, 적절한 조치를 취해야 합니다. 예를 들어, 사용자가 잘못된 값을 입력했을 때는 에러 메시지를 표시하고, 올바른 값을 입력하도록 유도해야 합니다.

많은 분들이 아래에서 더 큰 도움을 받으셨어요.
숨겨진 핵심 정보를 확인하세요!

지금 바로 더 알아보기

자바스크립트 숫자 변환, 언제 무엇을 사용해야 할까요?

이제 각각의 숫자 변환 함수와 연산자에 대해 자세히 알아봤으니, 언제 무엇을 사용해야 할지 정리해볼까요?

* parseInt(): 문자열에서 정수를 추출해야 할 때, 진법을 지정해야 할 때
* Number(): 문자열이 정확히 숫자를 나타내는지 확인해야 할 때, 불리언 값을 숫자로 변환해야 할 때
* parseFloat(): 문자열에서 부동 소수점 숫자를 추출해야 할 때
* 단항 더하기 연산자(+): 코드를 간결하게 만들고 싶을 때 (단, 가독성을 고려해야 함)

어떤 방법을 선택하든, 변환 결과가 예상대로 나오는지 항상 확인하는 것이 중요합니다. isNaN() 함수를 사용하여 NaN이 발생했는지 확인하고, 필요에 따라 적절한 예외 처리를 수행해야 합니다.

마무리

자, 오늘은 자바스크립트 숫자 변환에 대해 정말 자세하게 알아봤습니다. parseInt(), Number(), parseFloat(), 단항 더하기 연산자, 그리고 NaN까지! 이제 숫자 변환 때문에 더 이상 머리 아플 일은 없을 거예요. 이 글을 통해 여러분의 자바스크립트 개발 실력이 한 단계 더 업그레이드되기를 바랍니다! 궁금한 점이 있다면 언제든지 댓글로 질문해주세요. 다음에 또 유익한 정보로 찾아오겠습니다. 감사합니다!

많은 분들이 찾는 핵심 정보,
자바스크립트 숫자변환에 대한 실제 사례와 함께 정리된 글 알아보기!

👉 지금 바로 확인하기
위로 스크롤