isNaN和数字.isNaN
これらは両方とも、パラメーターが NaN 型であるかどうかを判断するために使用されます。
isNaN の実装原理は、 Number() メソッドを通じて、パラメータを Number型に変換しようとし、成功した場合は false を返し、失敗した場合は true を返します。
isNaN は、受信パラメータが数値に変換できるかどうかを判断するだけであり、パラメータが NaN に等しいかどうかを厳密に判断するわけではありません。
そして、Number.isNaN() は、入力されたパラメータが数値型 (NaN も特殊な数値型) であるかどうか、およびそれが NaN と厳密に等しいかどうか (===) を判断します。
console.log(isNaN('123')) //fasle,字符串类型的123能转成数字,所以返回false
console.log(Number.isNaN('123')) //false,字符串类型的123不是NaN,所以返回false
console.log(Number.isNaN(123) // false
console.log(isNaN('NaN')) // true
console.log(isNaN('nAn')) // true
console.log(isNaN('测试')) //true 因为Number(字符串)会返回NaN
console.log(Number.isNaN('测试')) //false,字符串不是NaN,所以返回false
console.log(Number.isNaN(NaN)) //true
is有限、数.is有限
どちらの方法も、パラメーターが有限であるかどうかを判断するために使用されます。
パラメーターが正の無限大 ( Number.POSITIVE_INFINITYおよびInfinity )、負の無限大 ( Number.POSITIVE_INFINITYおよび-Infinity )、NaN の場合。falseを返す
isFinite と Number.isFinite の違いは上記と同様で、Number.isFinite のデフォルトパラメータは数値型です。そして IsFinite はパラメータを数値型に変換してから判定します。
Number.isFinite() メソッドの場合。true を返すには、次の 2 つの点を満たす必要があります。
パラメータは数値です。
引数が無限/小さい、または NaN ではありません
console.log(Number.isFinite('123'))// false
console.log(Number.isFinite('abc')) //fasle
console.log(Number.isFinite(NaN)) // false
console.log(Number.isFinite(1)) // true
console.log(isFinite('123')) //true
console.log(isFinite('abc')) // fasle 因为Number('abc')是NaN
console.log(isFinite(NaN)) // false 同上
console.log(isFinite(-Infinity )) // false 因为Number(-Infinity)为-Infinity
知らせ
Number(null) // 0
Number('') // 0
console.log(isFinite(null )) //true