whatisthis?

javaScript. String을 Number로 변경 본문

WEB STUDY/JAVASCRIPT

javaScript. String을 Number로 변경

thisisyjin 2022. 1. 3. 12:23

그동안 String()이나 Number()함수를 이용해서 형 변환을 했었다면,

가장 간단한 방법으로 변환해보자!

 

** 주의 ) 명시적인 타입변환은 아니니 '이런 방법도 있구나' 하고 참고만 하자!

 

 

💡 자바스크립트의 자동 형변환을 이용!

 

** String -> Number

let str = "22"
str *= 1;

console.log(typeof str); // Number

 

1을 곱해준다.

>> 값의 변화는 없지만, 곱하기(*) 연산자는 number형만 가능하므로 그에 의해 number형으로 바뀐다.

 

** Number -> String 

let num = 123;
num += ""

console.log(typeof num); // String

 

공백("")을 더해준다.

>> string을 더해주면 string이 되므로, 값의 변화는 없지만 string형으로 바뀌게 된다.

 

 

 

💡 단, 배열의 경우에는 어떨까?

 

 

그동안 배열의 모든 요소를 Nubmer형으로 바꿔줄 때에는 map함수를 사용했었다.

 

let arr = ["1", "2", "3", "4", "5"];
arr.map(x => Number(x));

// arr = [1, 2, 3, 4, 5]

그렇다면 ㅡ 이 또한 위 방법대로 곱셈 연산을 사용해보자.

 

let arr = ["1", "2", "3", "4", "5"];
arr.map(x => x * 1);

// arr = [1, 2, 3, 4, 5]

역시 같은 결과가 나온다.

 

그러나, 이렇게 곱셈을 이용한 타입변환은

모르는 사람이 봤을 때, 코드의 의도를 파악하기 힘들고

보다 명시적인 형변환을 위해서는 String()이나 Number() 또는 parseInt()를 이용하자...

 

다음 포스팅에서 Number()과 parseInt()의 차이에 대해 알아보겠다.

 

https://mywebproject.tistory.com/214

 

javaScript. parseInt()와 Number()의 차이

우리는 String 형을 Number 형으로 바꿀 때, 연산(*1)을 사용하기도 하지만, 주로 parseInt()나 Number()을 사용한다. = 형 변환 (Type Casting) parseInt()와 Number()의 차이는 무엇일까? parseInt() Number()

mywebproject.tistory.com