最近 ES6 を学習しているのですが、数値拡張についていくつか質問があります。
ES6 は、Number オブジェクトに対して Number.isFinite() と Number.isNaN()
という 2 つのメソッドを提供します。ES5との違いは、Number()の呼び出しを一度キャンセルして数値以外の値を数値に変換してから判定する点です。
注: この 2 つのメソッドと従来の isFinite() メソッドおよび isNaN() メソッドの違いは、従来のメソッドでは最初に Number() を呼び出して数値以外の値を数値に変換してから、判定を行うことです。 。これら 2 つのメソッドは数値に対してのみ有効で、数値以外の場合は false を返します。
なぜこのようなことをしているのかよく分かりませんが、一度 Number() を呼び出して数値以外の値を数値に変換してから判断した方が良いのではないでしょうか?
phpcn_u15822017-05-18 10:54:30
MDNの説明を確認できます
isFinite については、Number.isFinite(true) と isFinite(true) を比較するとわかります。もちろん、Number.isFinite("") と isFinite("") も機能します。
黄舟2017-05-18 10:54:30
これらの2つの関数は数値に対して値が限定されているかNaNであるかを判定するために使用されます。文字列などの内部の隠れた演算を数値に変換すると、直接表現したい意味が失われてしまいます。その他いくつかの問題では、数値だけでなく文字列などの型も判定できるようになります。
参考リンク:
es6
isNaN