ホームページ > ウェブフロントエンド > jsチュートリアル > ECMAScript 6の準備:新しい番号方法

ECMAScript 6の準備:新しい番号方法

Joseph Gordon-Levitt
リリース: 2025-02-15 09:03:12
オリジナル
513 人が閲覧しました

ECMAScript 6の準備:新しい番号方法

この記事では、ES6(ECMAScript 6)の新規および改善された方法について説明しています。

ES6の新機能に関するシリーズの一部であり、文字列および配列データ型で利用可能な新しい方法についても説明しましたが、MapやWeakMapなどの新しいタイプのデータも説明しました。

数値データ型に追加された新しいメソッドと定数を紹介します。ご覧のとおり、カバーされている数のメソッドの一部はまったく新しいものではありませんが、適切なオブジェクトの下で改善および/または移動されています(たとえば、isnan())。いつものように、いくつかの例を挙げて、獲得した新しい知識を行動に導います。それで、それ以上のadoなしで、始めましょう。

キーテイクアウト

es6は、number.isinteger()、number.isnan()、number.isfinite()、number.issafeinteger()、number.parseint()、およびnumber.parsefloat()を含むいくつかの新しい番号方法を導入しました。 >

number.isinteger()渡された値が整数であるかどうかをチェックします。
    number.issafeinteger()渡された値が安全な整数である数字であるかどうかをテストし、IEEE-754二重精度番号として正確に表すことができる整数として定義されています。
  • number.parseint()およびnumber.parsefloat()は新しいものではありませんが、グローバルのモジュール化を目的として番号オブジェクトの下に移動されています。彼らは文字列引数を解析し、それぞれ整数と浮動小数点数を返します。
  • ES6は、javascriptの最大および最小セーフ整数を表すnumber.max_safe_integerとnumber.min_safe_integerの2つの関連する定数値も導入しました。
  • number.isinteger()
  • 最初にカバーしたい方法は、number.isinteger()です。これはJavaScriptに新たに追加されたものであり、これはあなたが過去に自分で定義し、使用したものです。関数に渡された値が整数であるかどうかを決定します。このメソッドは、渡された値が整数であり、それ以外の場合はfalseの場合、trueを返します。この方法の実装は非常に簡単でしたが、それでもネイティブにするのは良いことです。この機能を再現する可能性のある解決策の1つは、次のとおりです。
  • 楽しみのために、私はこの機能を再現しようとしました、そして、私は別のアプローチになりました:
これらの関数は両方とも良く有用ですが、ECMAScript 6の仕様を尊重していません。したがって、この方法をポリフィルしたい場合は、すぐに表示されるように、もう少し複雑なものが必要です。現時点では、number.isinteger()の構文を発見することから始めましょう。

数字引数は、テストする値を表します。 この方法の使用のいくつかの例を以下に示します。

前のコードのライブデモを以下に示し、JSBINでも入手できます。

この方法は、Internet Explorerを除き、ノードおよびすべての最新のブラウザーでサポートされています。古いブラウザをサポートする必要がある場合は、Mothyla Developer NetworkでMethod Pageページで利用できるようなポリフィルを使用できます。これは、便利さのために以下に再現されています:

<span>Number.isInteger = Number.isInteger || function (number) {
</span>  <span>return typeof number === 'number' && number % 1 === 0;
</span><span>};
</span>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

number.isnan()

過去にJavaScriptコードを書いたことがある場合、この方法は新しいものではないはずです。しばらくの間、JavaScriptには、ウィンドウオブジェクトを介して公開されているISNAN()と呼ばれるメソッドがありました。このメソッドは、値がNANに等しいかどうかをテストします。 window.isnan()の問題は、

を数値に変換した値に対してtrueを返すという点で問題があることです。この問題の具体的なアイデアを与えるために、次のすべてのステートメントが真実に戻ります:
<span>Number.isInteger = Number.isInteger || function (number) {
</span>  <span>return typeof number === 'number' && Math.floor(number) === number;
</span><span>};
</span>
ログイン後にコピー
ログイン後にコピー

必要なのは、NAN値が渡された場合にのみtrueを返す方法です。そのため、ECMAScript 6がnumber.isnan()メソッドを導入しました。その構文は、あなたが期待するものとほぼ同じです:
<span>Number.isInteger(number)
</span>
ログイン後にコピー
ログイン後にコピー

ここで、値はテストしたい値です。この方法のいくつかの例を以下に示します:
<span>// prints 'true'
</span><span>console.log(Number.isInteger(19));
</span>
<span>// prints 'false'
</span><span>console.log(Number.isInteger(3.5));
</span>
<span>// prints 'false'
</span><span>console.log(Number.isInteger([1, 2, 3]));
</span>
ログイン後にコピー

ご覧のとおり、同じ値をテストして、異なる結果を得ます。

前のスニペットのライブデモを以下に示し、JSBINでも入手できます。

この方法は、Internet Explorerを除き、ノードおよびすべての最新のブラウザーでサポートされています。他のブラウザをサポートしたい場合は、この方法の非常にシンプルなポリフィルは次のとおりです。

<span>if (!Number.isInteger) {
</span>  <span>Number.isInteger = function isInteger (nVal) {
</span>    <span>return typeof nVal === 'number' &&
</span>      <span>isFinite(nVal) &&
</span>      nVal <span>> -9007199254740992 &&
</span>      nVal <span>< 9007199254740992 &&
</span>      <span>Math.floor(nVal) === nVal;
</span>  <span>};
</span><span>}
</span>
ログイン後にコピー
これが機能する理由は、NANがJavaScriptの唯一の反射的値であるためです。つまり、それはそれ自体と等しくない唯一の値です。

number.isfinite()

この方法は、前の方法と同じストーリーを共有しています。 JavaScriptには、渡された値が有限数であるかどうかをテストするwindow.isfinite()というメソッドがあります。残念ながら、それはまた、

を数値に変換した値に対して真実に戻ります。この問題の例を以下に示します: このため、ECMAScript 6には、数字に属するiSfinite()と呼ばれる方法があります。その構文は次のとおりです

<span>// prints 'true'
</span><span>console.log(window.isNaN(0/0));
</span>
<span>// prints 'true'
</span><span>console.log(window.isNaN('test'));
</span>
<span>// prints 'true'
</span><span>console.log(window.isNaN(undefined));
</span>
<span>// prints 'true'
</span><span>console.log(window.isNaN({prop: 'value'}));
</span>
ログイン後にコピー
ここで、値はテストしたい値です。前のスニペットから同じ値をテストすると、結果が異なることがわかります。

前のスニペットのライブデモを以下に示し、JSBINでも入手できます。
<span>Number.isNaN(value)
</span>
ログイン後にコピー
この方法は、Internet Explorerを除き、ノードおよびすべての最新のブラウザーでサポートされています。 MDNのメソッドページでポリフィルを見つけることができます。

number.issafeinteger()

number.issafeinteger()メソッドは、ES6にまったく新しい追加です。渡された値が安全な整数である数字であるかどうかをテストします。その場合、それは真実に戻ります。安全な整数は、次の2つの条件の両方を満たす整数として定義されます。

    数値は、IEEE-754ダブル精度番号として正確に表すことができます
  • 数のIEEE-754表現は、IEEE-754表現に合わせて他の整数を丸めた結果ではありません。
  • この定義に基づいて、安全な整数はすべてからの整数です - (2
  • 53
- 1)2

53 - 1を含む。これらの値は重要であり、このセクションの最後にもう少し説明します。 この方法の構文は、です ここで、値はテストしたい値です。この方法のいくつかの例を以下に示します。

このコードのライブデモを以下に示し、JSBINでも入手できます。

number.issafeinteger()は、インターネットエクスプローラーを除き、ノードおよびすべての最新のブラウザーでサポートされています。 Paul MillerによってES6-Shimから抽出されたこの方法のポリフィルは次のとおりです。

<span>Number.isInteger = Number.isInteger || function (number) {
</span>  <span>return typeof number === 'number' && number % 1 === 0;
</span><span>};
</span>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
このポリフィルは、以前に説明したnumber.isinteger()メソッドに依存していることに注意してください。したがって、これを使用するには後者もポリフィルする必要があります。

ecmascript 6は、number.max_safe_integerとnumber.min_safe_integerの2つの関連する定数値も導入しました。前者は、JavaScriptの最大安全な整数、つまり2

53
<span>Number.isInteger = Number.isInteger || function (number) {
</span>  <span>return typeof number === 'number' && Math.floor(number) === number;
</span><span>};
</span>
ログイン後にコピー
ログイン後にコピー
- 1を表しますが、後者は最小安全な整数です。ご覧のとおり、これらは私が前に引用したのと同じ値です。

number.parseint()およびnumber.parsefloat()

number.parseint()およびnumber.parsefloat()メソッドは同じセクションでカバーされています。なぜなら、この記事に記載されている他の同様のメソッドとは異なり、それらはすでに以前のバージョンのECMAScriptに存在しているが、それらとは違いはないため古いグローバルバージョン。したがって、これまでに行ったのと同じ方法でそれらを使用することができ、同じ結果を期待できます。これらの方法を数に追加する目的は、グローバルのモジュール化です。
<span>Number.isInteger(number)
</span>
ログイン後にコピー
ログイン後にコピー
完全性のために、私はそれらの構文を報告しています:

ここで、文字列は解析する値を表し、基数は文字列を変換するために使用する基数です。 次のスニペットには、いくつかの例の使用が示されています このコードのライブデモは以下に表示され、JSBINでも入手できます。 これらのメソッドは、インターネットエクスプローラーを除き、ノードおよびすべての最新のブラウザーでサポートされています。それらをポリフィルしたい場合は、以下にリストするように関連するグローバルな方法を呼び出すことができます。

<span>Number.isInteger = Number.isInteger || function (number) {
</span>  <span>return typeof number === 'number' && number % 1 === 0;
</span><span>};
</span>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

ブラウザサポート

次のグラフィックは、ES6の組み込み番号オブジェクトへの拡張機能のブラウザサポートを示しています。ボックスの上にマウスをマウスして、それぞれのブラウザバージョンの使用率を確認します。

ES6-Numberを使用できますか? Caniuse.comの主要なブラウザ全体のES6-Number機能のサポートに関するデータ。

ES6番号方法:ラッピング

このチュートリアルでは、ecMascript 6に追加された新しい方法と定数を、数値データ型で動作する新しい方法と定数について説明しました。 ES6がこれまで言及していない別の定数を追加したことも注目に値します。これはnumber.epsilonであり、

は、数字として表すことができるものよりも大きい1つと最小値の違いを表します。 🎜> ES6番号方法に関するよくある質問(FAQ)

新しいES6番号のメソッドは何ですか?それらはどのように機能しますか?

ES6は、JavaScriptの数字を簡単に操作できるようにするいくつかの新しい数字メソッドを導入しました。これらには、number.isfinite()、number.isinteger()、number.isnan()、number.parsefloat()、およびnumber.parseint()が含まれます。これらの各メソッドは、特定の関数を実行します。たとえば、number.isfinite()は、値が有限数であるかどうかをチェックし、number.isinteger()は値が整数であるかどうかをチェックします。 number.isnan()値がnan(numberではない)、およびnumber.parsefloat()とnumber.parseint()が文字列引数を解析し、それぞれフローティングポイント番号と整数を返します。 number.epsilonメソッドはES6で機能しますか?

number.epsilon in es6は、2つの表現可能な数値の間の最小間隔を表す新しい定数です。これは、平等について浮動小数点数を比較する場合に特に役立ちます。コンピューターで浮動小数点数が表現される方法により、たとえそうであっても、それらは正確に等しくないかもしれません。 number.epsilonを使用して、2つの数字の差がこの最小間隔よりも小さいかどうかを確認できます。これは、それらが効果的に等しいことを示しています。 ES6のnumber.issafeinteger()メソッドは、値が安全な整数であるかどうかを判断するために使用されます。安全な整数は、IEEE -754の二重精度数として正確に表現できる数字です。つまり、それは - (2^53 - 1)および2^53 - 1の範囲内です。この方法は、あなたが望むときに役立ちますJavaScriptで数字を正確に表現できることを確認してください。これは、特定の数学操作で重要になる可能性があります。

number.parseint()メソッドは、Global parseint()関数とはどう違いますか?

番号オブジェクトの一部。これは、スタンドアロン関数としてではなく、番号オブジェクトのメソッドとしてそれを呼び出すことができることを意味します。機能は同じです - 指定された基数またはベースの文字列を整数に変換します。 number.max_safe_integerおよびnumber.min_safe_integer定数ES6の定数は、JavaScriptの最大および最小安全な整数値を表します。安全な整数とは、IEEE-754の二重精度数として正確に表現できるものです。これらの定数は、数値が安全な整数範囲内にあるかどうかを確認する必要がある場合に役立ちます。これは、特定の数学操作で重要です。 >

es6のnumber.isnan()メソッドは、値がnan(nowではない)かどうかを判断するために使用されます。これは、テストする前に引数を数値に変換するグローバルISNAN()関数とは異なります。 number.isnan()はこの変換を実行しないため、引数が実際のnan値である場合にのみtrueを返し、引数が数値に変換できない値である場合ではありません。 ES6のnumber.isfinite()メソッドの使用は、number.isfinite()メソッドを使用して、値が有限数かどうかを判断するために使用されます。これは、テストする前に引数を数値に変換するグローバルISFINITE()関数とは異なります。 number.isfinite()はこの変換を実行しないため、引数が有限数である場合にのみ返され、引数が数値に変換できない値である場合ではありません。 number.parsefloat()メソッドはes6?

で動作します。ES6のnumber.parsefloat()メソッドは、基本的にグローバルなparsefloat()関数と同じですが、それは数値オブジェクトの一部です。これは、スタンドアロン関数としてではなく、番号オブジェクトのメソッドとしてそれを呼び出すことができることを意味します。機能は同じです - 文字列引数を解析し、フローティングポイント番号を返します。 ES6のメソッドは、値が整数であるかどうかを判断するために使用されます。この方法は、値がNANではなく無限ではない数値であり、分数成分なしで表現できる場合にtrueを返します。数字が整数であるかどうかを確認する必要がある場合に便利です。これは、特定の数学操作で重要になる可能性があります。

新しいES6番号メソッドの実用的なアプリケーションは何ですか?

新しいES6番号メソッドは、JavaScriptの数字を操作するためのより堅牢で正確な方法を提供します。それらを使用して、数値が有限であるか、整数、NAN、または安全な整数であるかを確認し、文字列を数値に解析することができます。これらの方法は、数学的操作、データ検証、および数値に対する正確な制御が必要な場所で特に役立ちます。

以上がECMAScript 6の準備:新しい番号方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート