티스토리 뷰

문제 설명
문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요.

제한 조건
s의 길이는 1 이상 5이하입니다.
s의 맨앞에는 부호(+, -)가 올 수 있습니다.
s는 부호와 숫자로만 이루어져있습니다.
s는 "0"으로 시작하지 않습니다.


입출력 예
예를들어 str이 "1234"이면 1234를 반환하고, "-1234"이면 -1234를 반환하면 됩니다.
str은 부호(+,-)와 숫자로만 구성되어 있고, 잘못된 값이 입력되는 경우는 없습니다.

 

풀이 과정

더보기

문제를 보자마자 든 생각은 '그냥 Number 쓰면 되는 거 아닌가?'였다. 그렇지만 어떤 함정이 있을 줄 몰랐기에 일단 아는 걸 작성해서 코드 실행해 보기로 했다. 

 

1차 코드

function solution(s) {
    let string = s
    let answer = string.Number();
    return answer;
}


//그냥 숫자변환 메서드 Number, 문자변환 메서드 toString 쓰면 되지 않나?

변수에 문자열을 넣고 .Number를 쓰면 손쉽게 숫자로 바뀔 줄 알았는데 아니었다. 뭐가 문제지? 

찾아보니 Number를 쓰는 방식의 문제였다. 자바스크립트에서 'Number()'는 숫자로 변환하는 내장 함수인데, 이는 객체의 메서드가 아니라 독립된 함수이기 때문에 'string.Number()' 같은 형태로 호출할 수 없다는 것이다. 

 

자바스크립트에서 메서드와 함수는 다른 개념이다. 구분해서 익혀 둬야겠다. 

 -함수 : 전역에서 호출하거나, 특정 객체에 소속되지 않은 독립된 함수. 예를 들어, 'Number()'나 'parseInt()'와 같은 함수들을 말한다. 

 -메서드 : 특정 객체에 소속된 함수로, 해당 객체의 속성처럼 호출된다. 예를 들어, 'toString'은 'string' 객체의 메서드로, 객체에 소속된 함수를 호출할 때는 'object.method()' 형식을 사용한다. 

 

정답 코드

function solution(s) {
    let answer = Number(s);
    return answer;
}

아주 간단하다. 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함