답변:
항상 parseInt로 기수를 전달하는 것이 좋습니다.
parseInt(string, radix)
십진수의 경우-
parseInt(id.substring(id.length - 1), 10)
기수 매개 변수를 생략하면 JavaScript는 다음을 가정합니다.
( 참조 )
Redundant radix parameter
radix
인수는 숫자 값의 문자열 표현이 아니라 숫자 값이므로 지정할 기수가 없습니다.
이 경고를 피하려면 다음을 사용하십시오.
parseInt("999", 10);
다음과 같이 교체 할 수 있습니다.
Number("999");
parseInt와 Number의 동작 은 서로 다르지만 경우에 따라 하나가 다른 것을 대체 할 수 있습니다.
Number()
보다 빠르게 6 배입니다parseInt()
나는 질문에 올바르게 대답하지는 않지만 왜 기수를 지정 해야하는지 분명히하는 것이 합리적이라고 생각합니다 .
MDN 문서에서 다음을 읽을 수 있습니다.
기수가 정의되지 않거나 0 (또는 부재) 인 경우 JavaScript는 다음을 가정합니다.
출처 : MDN parseInt ()
JS 파일 위에 다음을 추가하면 JSHint가 기수 경고를 억제하도록 지시합니다.
/*jshint -W065 */
"-W065": true
예를 들어 .jshintrc
파일 에서을 사용할 수 있습니다 .
+ foo를 사용하여 문자열을 변환하여 해결했습니다.
가독성 (더러운 수정)에는 좋지 않습니다.
console.log( +'1' )
// 1 (int)
parseInt ()는 두 개의 인수를 가지므로 기수 자리에 빈 문자열을 넣으십시오.
parseInt (문자열, 기수);
string 구문 분석 할 값입니다. 문자열 인수가 문자열이 아닌 경우 ToString 추상 연산을 사용하여 문자열로 변환됩니다. 문자열 인수의 선행 공백은 무시됩니다.
기수 위에서 언급 한 문자열의 기수 (수치 체계의 밑)를 나타내는 2에서 36 사이의 정수. 사람이 일반적으로 사용하는 10 진수 시스템에 10을 지정하십시오. 독자 혼란을 제거하고 예측 가능한 동작을 보장하려면 항상이 매개 변수를 지정하십시오. 기수가 지정되지 않은 경우 구현에 따라 결과가 다르며 일반적으로 기본값은 10입니다.
이미지 인덱스 = parseInt (id.substring (id.length-1))-1;
imageIndex = parseInt(id.substring(id.length - 1), '')-1;
.eslintrc에 사용자 지정 규칙을 추가하기 만하면
"radix": "off"
됩니다. 그러면이 eslint unnesesery 경고가 발생하지 않습니다. 이것은 eslint linter를위한 것입니다.