[에러] TypeError: num.split is not a function

stella·2023년 1월 5일
0

Error

목록 보기
1/1

에러 발생

숫자인 num에 split()을 이어 붙였을 때 TypeError가 발생하였다.

알고리즘 풀 때 꽤 자주 등장한 에러였다. 원인을 모른채 계속 삽질만 했지만 또 다시 마주하게된 에러였다. 다음번에 다시 동일한 에러를 만나게되면 바로 대처할 수 있도록 이번에 이 에러의 원인을 찾아보았다.

function solution(num, k) {
    var answer = 0;
    let array = num.split('');
    console.log(array);
    return answer;
}


해결 방법

function solution(num, k) {
    var answer = 0;
    let toString = num.toString();
    let array = toString.split('');
    console.log(array);
    return answer;
}

split() 메서드는 애초에 string 타입이 아닌 값에 대해 메서드를 호출할 때 에러가 발생한다.

오류를 해결하려면,
1) split() 을 사용하기 전에 toString() 을 사용하여 num에 있는 값을 string 타입으로 형변환 하거나
2) string 타입에 대해서만 split() 메서드를 호출해야 한다.

결론

split() 메서드는 string 타입에서만 메서드 호출이 가능하다.
string 타입이 아닐 경우, toString() 메서드를 사용하여 값을 string 타입으로 변환하기

profile
Frontend Engineer

0개의 댓글