Avoid direct comparison with NaN このページは日本語には対応しておりません。随時翻訳に取り組んでいます。翻訳に関してご質問やご意見ございましたら、お気軽にご連絡ください。
このルールを試す ID: javascript-best-practices/use-isnan
Language: JavaScript
Severity: Error
Category: Best Practices
CWE : 570
Description In JavaScript, NaN
(Not-a-Number) is a unique value that is not equal to anything, including itself. This means any direct comparison with NaN
using equality (==
, ===
) or inequality (!=
, !==
) operators will always return false
.
Non-Compliant Code Examples 123 == NaN ;
123 === NaN ;
NaN === "abc" ;
NaN == "abc" ;
123 != NaN ;
123 !== NaN ;
NaN !== "abc" ;
NaN != "abc" ;
NaN < "abc" ;
"abc" < NaN ;
NaN > "abc" ;
"abc" > NaN ;
NaN <= "abc" ;
"abc" <= NaN ;
NaN >= "abc" ;
"abc" >= NaN ;
123 == Number . NaN ;
123 === Number . NaN ;
Number . NaN === "abc" ;
Number . NaN == "abc" ;
123 != Number . NaN ;
123 !== Number . NaN ;
Number . NaN !== "abc" ;
Number . NaN != "abc" ;
Number . NaN < "abc" ;
"abc" < Number . NaN ;
Number . NaN > "abc" ;
"abc" > Number . NaN ;
Number . NaN <= "abc" ;
"abc" <= Number . NaN ;
Number . NaN >= "abc" ;
"abc" >= Number . NaN ;
x === Number ? . NaN ;
x === Number [ 'NaN' ];
Compliant Code Examples var x = NaN ;
isNaN ( NaN ) === true ;
isNaN ( 123 ) !== true ;
Number . isNaN ( NaN ) === true ;
Number . isNaN ( 123 ) !== true ;
foo ( NaN + 1 );
foo ( 1 + NaN );
foo ( NaN - 1 )
foo ( 1 - NaN )
foo ( NaN * 2 )
foo ( 2 * NaN )
foo ( NaN / 2 )
foo ( 2 / NaN )
var x ; if ( x = NaN ) { }
var x = Number . NaN ;
isNaN ( Number . NaN ) === true ;
Number . isNaN ( Number . NaN ) === true ;
foo ( Number . NaN + 1 );
foo ( 1 + Number . NaN );
foo ( Number . NaN - 1 )
foo ( 1 - Number . NaN )
foo ( Number . NaN * 2 )
foo ( 2 * Number . NaN )
foo ( Number . NaN / 2 )
foo ( 2 / Number . NaN )
var x ; if ( x = Number . NaN ) { }
x === Number [ NaN ];
Seamless integrations. Try Datadog Code Analysis