JS에서 문자열을 숫자로 변환하는 방법을 결정할 수 없는 이유

이 게시물의 제목에서 언급했듯이. 우리는 문자열을 숫자로 변환하는 데 사용할 수 있는 몇 가지 방법을 탐색하고 지옥 같은 방법에 갇히지 않도록 할 것입니다.

parseInt( ) 대 parseFloat( )



우선 문자열 캐스팅에 대해 이야기할 때 이러한 매우 잘 알려진 방법을 언급하지 않을 수 없습니다.

따라서 javascript를 처음 사용하는 사용자를 위해 이러한 메서드는 문자열을 정수 "parseInt( )"또는 부동 소수점 숫자 "parseFloat( )"로 각각 변환하는 데 사용된다는 점을 알려드립니다.

그러나 두 가지 모두에 작은 문제가 있습니다. 잘못된 숫자로 구문 분석하면 많은 실수가 발생할 수 있으므로 처음부터 작업하려는 숫자 유형을 알고 있어야 합니다. 이는 비즈니스에 매우 해로울 수 있습니다.

const stringNumber = "45.1"

// output -> 45 (is not a string anymore)
const int = parseInt(stringNumber) 

// output -> 45.1 (is not a string anymore, and it is float)
const float = parseFloat(stringNumber) 


숫자( )



이것은 자바스크립트의 Number 클래스의 직접적인 인스턴스입니다.

Number( )는 대규모 코드 베이스에 있을 만큼 충분히 읽을 수 있고 그 기능을 이름으로 명확하게 이해할 수 있으며 자동으로 문자열을 Integer 또는 Float 형식으로 지정하기 때문에 문자열을 숫자로 구문 분석하는 가장 권장되는 방법 중 하나입니다.

const stringIntegerNumber = "45"
const stringFloatNumber = "45.1"

// output -> 45 (is not a string anymore)
const int = Number(stringIntegerNumber)

// output -> 45.1 (is not a string anymore, and it is float)
const float = Number(stringFloatNumber)


단항 연산자(+)



문자열을 숫자로 변환하는 방법을 선택할 수 있습니다. 이것은 실제로 JavaScript 메서드나 클래스가 아니라 특수 연산자이기 때문에 확실히 가장 이상합니다.

Number( )와 마찬가지로 단항 연산자는 동일한 기능을 수행하지만 함께 작업하는 사람들이 JavaScript 문서를 읽은 적이 없는 경우 더 나은 성능을 제공하므로 이러한 방식은 충분히 읽을 수 없습니다.

const stringIntegerNumber = "45"
const stringFloatNumber = "45.1"

// output -> 45 (is not a string anymore)
const int = +stringIntegerNumber

// output -> 45.1 (is not a string anymore, and it is float)
const float = +stringFloatNumber


무슨 일이 일어나고 있는지 이해가 되지 않는다면 이 방법은 숫자 값이 있는 문자열 바로 앞에 "+"연산자를 추가하여 작동한다는 점을 알려드리겠습니다("+"사이에 공백이 있는 경우 고전적인 합계 연산자로 간주됨).

더 많은 방법이 있으면 자유롭게 의견을 말하십시오.

좋은 웹페이지 즐겨찾기