오늘은 ESLint를 적용 한 후 마주한 오류 중 parseInt에 대해서 적어보려고 합니다.
parseInt(string)
만 적게 되면 위처럼 missing radix parameter 라고 뜨게 됩니다.
MDN을 보게 되면 정식 구문은 parseInt(string)/ parseInt(string, radix)
입니다.
string은 파싱 할 문자열이며 매개변수가 문자열이 아닌 경우 toString 하여 문자열로 반환하여 사용하게 되는데 공백 제외 첫문자열이 숫자로 변환이 안 될 경우 NaN을 반환합니다.
radix는 string의 진수를 나타내며 2~36 사이의 정수입니다. 이때 기본 값은 10이 아닙니다.
ECMAScript 3부터 radix 누락을 권장하지 않습니다. radix가 없을 경우 0x 또는 0X
로 시작하는 문자열은 16진수로 간주 되며 그 외 문자열은 10진수로 간주하게 됩니다. radix를 명시 해야 해당 진법으로 실행하여 값을 도출해 냅니다.
ESLint에서 이것을 검출하는 것을 원치 않는 다면 .eslintrc.json
에 "rules":{radix: ["error", "as-needed"]}
을 추가 하면 무조건적으로 에러를 뱉는 것이 아니라 필요에 따라 에러를 뱉게 됩니다. "as-needed" 없이 "rules":{radix: "error"}
만 쓰게 되면 radix가 없는 경우 무조건 에러를 뱉게 됩니다.
참고 문헌
MDN parseInt
ESLint Radix