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;
}
'인간은 어떻게 배울까' 카테고리의 다른 글
[JS] 버튼 누르면 동작하기, 이벤트 핸들러 (0) | 2023.05.31 |
---|---|
[JS] DOM 에서 innerHTML과 contentText의 차이 (0) | 2023.05.31 |
[HTML/CSS] css로 html에 배경 이미지 넣고 제어하기 (0) | 2023.05.23 |
[HTML/CSS] HTML 기본 (0) | 2023.05.15 |
[python] 모듈과 라이브러리와 패키지 (1) | 2023.05.08 |