eslint/use-isnan 정확성
작동 방식
isNaN() 호출 없이 NaN과의 비교를 금지합니다.
왜 좋지 않은가?
자바스크립트에서 NaN은 Number 타입의 특수한 값입니다.
이는 이중 정밀도 64비트 형식(이중 정밀도 부동소수점 산술에 대한 국제 전기 통신 협회(IEEE) 표준에 따름)에 의해 표현되는 "숫자가 아닌 값"을 나타내는 데 사용됩니다.
자바스크립트에서는 NaN이 자신과도 같지 않기 때문에, 어떤 것과도 같지 않으며 유일한 특성을 가집니다.
따라서 NaN과의 비교 결과는 혼란스러울 수 있습니다:
NaN === NaN또는NaN == NaN는false로 평가됨NaN !== NaN또는NaN != NaN는true로 평가됨
따라서 값이 NaN인지 테스트하려면 Number.isNaN() 또는 전역 isNaN() 함수를 사용해야 합니다.
예시
이 규칙에 부적절한 코드 예시:
javascript
foo == NaN;
foo === NaN;
foo <= NaN;
foo > NaN;구성 방법
이 규칙은 다음 속성을 가진 구성 객체를 수용합니다:
enforceForIndexOf
type: boolean
기본값: false
indexOf 및 lastIndexOf의 인수로 NaN을 허용하지 않도록 설정할지 여부
enforceForSwitchCase
type: boolean
기본값: true
switch 문의 케이스와 구분자(discriminant)에 NaN을 허용하지 않도록 설정할지 여부
사용 방법
이 규칙을 구성 파일이나 명령줄 인터페이스에서 활성화하려면 다음을 사용할 수 있습니다:
json
{
"rules": {
"use-isnan": "error"
}
}bash
oxlint --deny use-isnan