📑 프로그래머스 lv.1 문제 풀이 중 알게된 함수 공부 기록
Q. 문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요.
function solution(s) {
var answer = parseInt(s,10);
return answer;
}
🟩 조건 :
_ s의 길이는 1 이상 5이하입니다.
s의 맨앞에는 부호(+, -)가 올 수 있습니다.
s는 부호와 숫자로만 이루어져있습니다.
s는 "0"으로 시작하지 않습니다._
function solution(s) {
var sign = 1;
if (s[0] === '-') {
sign = -1;
s = s.slice(1);
} else if (s[0] === '+') {
s = s.slice(1);
}
// 문자열이 "0"으로 시작하지 않도록 처리
if (s[0] === '0' && s.length > 1) {
// "0"으로 시작하는 경우 첫 번째 문자를 제외한 나머지 문자열로 업데이트
s = s.slice(1);
}
// parseInt 함수를 사용하여 문자열을 정수로 변환하고 부호를 적용
var answer = sign * parseInt(s, 10);
return answer;
}
Javascript에서 문자열을 숫자(number)로 형변환
문자열을 파싱해서 숫자나 NaN(Not a Number)을 리턴
목적 : 문자열에서 숫자 추출
parseInt(string, *radix);
🔸 파라미터
string : 숫자로 변환할 문자열
radix : ( *optional) string 문자열을 읽을 진법(수의 진법 체계의 진법)
🔸 리턴값
string을 정수로 변환한 값을 리턴
string의 첫 글자를 정수로 변경할 수 없으면 NaN(Not a Number) 값을 리턴
🚀 정상 출력
: 정수, 음수, 실수, 문자열이 아닌 다른 타입의 값, 첫글자만 숫자인 문자열, 첫글자가 공백, 뒤 공백⚒️ NaN 출력
: 첫글자가 숫자가 아닌 문자열, 공백만 존재
const age = prompt("are you OK?");
console.log(age, parseInt(age), age);
형을 변환해준다고 하기에 parseInt(변수)를 사용한 뒤에 변수의 타입을 다시 찍어보면 계속 number로 나오지 않을까?
그런데 위 코드를 찍어보니 첫 번째, 세 번째는 string 타입으로, 두 번째는 number 타입으로 출력
따라서 parseInt(변수)를 한 번 사용했다고 해서, 해당 변수의 타입이 number 타입으로 영구적으로 변하는 것은 아닌것으로 예상
parseInt 함수를 사용할 때만 임시로 형 변환이 되는 것이라 주의 필요
참조. 출처