isNaN、Number.isNaN、isFinite、Number.isFinite

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

おすすめ

転載: blog.csdn.net/weixin_42274805/article/details/129145804