Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript에서 기수(radix) 매개변수가 누락될 때 발생하는 JSLint 오류란?

JavaScript parseInt 함수와 기수 매개변수

JavaScript에서 제공하는 parseInt 함수는 다음과 같은 시그니처를 가지고 있습니다.

parseInt(string, radix);

각 매개변수의 의미는 다음과 같습니다.

string 매개변수

파싱할 값입니다. 이 인자가 문자열이 아니면 ToString 메서드를 통해 문자열로 변환됩니다. 또한 앞에 있는 공백(선행 공백)은 무시됩니다.

radix 매개변수

문자열의 기수(radix), 즉 수학적 기수법에서의 진법을 나타내는 2부터 36 사이의 정수입니다.

기수 매개변수를 생략하면 어떻게 될까?

만약 radix 매개변수가 생략되면, JavaScript는 다음과 같은 규칙에 따라 기수를 추정합니다.

  • 문자열이 "0x"로 시작하면 기수는 16(16진수)으로 간주됩니다.
  • 문자열이 "0"으로 시작하면 기수는 8(8진수)로 간주됩니다. 단, 이 기능은 더 이상 권장되지 않습니다(deprecated).
  • 그 외의 값으로 시작하면 기수는 10(10진수)으로 간주됩니다.

JSHint/JSLint가 오류를 표시하는 이유

위와 같은 암묵적인 동작은 코드 실행 환경에 따라 예상치 못한 결과를 초래할 수 있습니다. 예를 들어, 오래된 브라우저에서는 "010"을 8진수로 해석해 8을 반환하지만, 최신 환경에서는 10진수로 해석해 10을 반환할 수 있습니다.

이러한 모호성과 잠재적 버그를 방지하기 위해 JSHint나 JSLint 같은 정적 분석 도구는 radix 매개변수가 누락된 경우 오류를 발생시킵니다.

올바른 사용 방법

항상 radix 매개변수를 명시적으로 지정하는 것이 좋습니다.

// 잘못된 예 - radix 누락
var num = parseInt("071");

// 올바른 예 - radix 명시
var num = parseInt("071", 10); // 항상 71을 반환

이처럼 radix를 명시하면 코드의 의도가 명확해지고, 다양한 환경에서 일관된 결과를 보장할 수 있으며, 린터(linter) 경고도 사라집니다.