본문 바로가기
인간은 어떻게 배울까

[JS] 문자를 숫자로, 숫자를 문자로. 간단히 하는 방법

by 개발하는 아인 2023. 5. 31.
num = 123

r1 = String(num)  // 첫번째 방법
r2 = num + ""     // 두번째 방법

 

r1 에는 String() 를 사용해서 숫자 123을 문자열로 변경시켜 할당했습니다.

r2 에는 단순히 숫자 123 에 문자열 ""을 더해주었구요.

 

둘다 결과는 동일하게 '123' 이 됩니다.

 

r1 = '123'

r2 = '123'

 

 

 

자바스크립트는 '더하기 연산자 + 에 한해서' 숫자와 문자열을 더하라고 하면 전부 문자열로 합쳐버립니다.

 

123 + "45" = "12345"

 

 

 

빼기 곱하기 나누기( -  *  / )는 숫자로 계산해버리구요. 더하기만 문자열로 취급해버립니다.

 

123 - "45" = 78

 

123 * "45" = 5535

 

123 / "45" = 2.7333333333333334

 

 

어쨌든, 숫자 더하기 문자열은 무조건 문자열! 인 규칙을 이용해서

String()으로 감싸주는 방법 말고도 이렇게 간단하게도 변경할 수 있네요.

 

 

 

 

 

이 규칙을 이용해 반대로 문자열을 숫자로 변환해주는 과정도 재미있습니다.

 

str = '123'

str *= 1         (str = str * 1 와 동일)

str = 123

 

문자열인 '123'에 숫자 1을 곱해주면 숫자 123이 되는 것입니다.

 

 

보통은 아래처럼 Number(str)이나 pareInt(str)을 사용해도 되죠.

str = '123'

r1 = Number(str)
r2 = parseInt(str)

 

 

앨리스 웹개발 과정 '각 자리수 반환 함수 만들기'를 풀이하다가 심심해서 찾아봤는데 이런 방법도 있구나 싶네요.

아래에 정답 코드를 게시합니다.

// 지시사항에 따라 코드를 작성합니다.
function getDigits(num) {
    var r = [];
    var str = num.toString();

	for (var s of str) {

		r.push(s * 1);	// 이 부분
    }
    
    return r;
}

참조: https://blog.outsider.ne.kr/361