ES 6実戦:新デジタルメソッド


翻訳:https://www.sitepoint.com/es6...
転載は出典を明記してください:ブドウ城の公式サイト、ブドウ城は開発者のために専門の開発ツール、解決策とサービスを提供して、開発者に与えることができます.
ES 6における新しいデジタルアプローチ(ECMAScript 6)を紹介した.
この文書では、Numberデータ型を追加する新しい方法と定数について説明します.もちろん、ここで採用される方法は完全に新しいものではないが、and/orで直接移動することができる(例えばisNaN()である).私たちはいくつかの例を通じて実践します.
Number.isInteger()
私が紹介する最初の方法はNumber.isInteger()です.JavaScriptの新機能で、この方法を定義して使用したことがあるかもしれません.関数に渡される値が整数であるかどうかを決定します.関数値がtrueの場合、このメソッドが返され、falseが飛び出します.この方法の実現は非常に簡単で,オリジナルJavaScript構文である.この機能を書き換える方法の1つは、次のとおりです.
    Number.isInteger = Number.isInteger || function (number) {
      return typeof number === 'number' && number % 1 === 0;
    };

ただ面白いために、私はこの機能を書き直して、全く異なる方法を採用しました.
    Number.isInteger = Number.isInteger || function (number) {
      return typeof number === 'number' && Math.floor(number) === number;
    };

以上の2つの方法は、パラメータが整数であるか否かを判断することができるが、ECMAScript 6の仕様に合致しない.したがって、ES 6の仕様に厳格に従って書き換えたい場合は、以下の文法から始めてください.
    Number.isInteger(number)

このパラメータnumberは、テストする値を表します.
この方法の例を次に示します.
    // prints 'true'
    console.log(Number.isInteger(19));
    
    // prints 'false'
    console.log(Number.isInteger(3.5));
    
    // prints 'false'
    console.log(Number.isInteger([1, 2, 3]));




Node.jsとすべての現代ブラウザはこの方法をサポートしており、インターネットExplorerを除く.古いブラウザをサポートする必要がある場合は、火狐ブラウザMozilla Developer Networkで提供されているpolyfillなどのpolyfillを使用します.次のコードを見てください.
    if (!Number.isInteger) {
      Number.isInteger = function isInteger (nVal) {
        return typeof nVal === 'number' &&
          isFinite(nVal) &&
          nVal > -9007199254740992 &&
          nVal < 9007199254740992 &&
          Math.floor(nVal) === nVal;
      };
    }

Number.isNaN()
JavaScriptコードを以前に作成したことがある場合は、この方法はよく知られていません.JavaScriptにはisNaN()という方法がwindowオブジェクトで公開されています.このメソッドは、テスト値がNaNに等しいかどうかを判断し、trueを返し、そうでない場合falseを返します.ただしwindowを直接呼び出します.isNaN()には、テスト値が強制的に数値に変換されるとtrue値が返されるという問題があります.この問題を具体的に理解するには、次のすべての文が返されます.true
    // prints 'true'
    console.log(window.isNaN(0/0));
    
    // prints 'true'
    console.log(window.isNaN('test'));
    
    // prints 'true'
    console.log(window.isNaN(undefined));
    
    // prints 'true'
    console.log(window.isNaN({prop: 'value'}));

必要なのは、値がNaNである場合にのみtrueを返す方法です.これがECMAScript 6がNumber.isNaN()を導入した理由である.構文は次のとおりです.
    Number.isNaN(value)
     value       。              :
    
    // prints 'true'
    console.log(Number.isNaN(0/0));
    
    // prints 'true'
    console.log(Number.isNaN(NaN));
    
    // prints 'false'
    console.log(Number.isNaN(undefined));
    
    // prints 'false'
    console.log(Number.isNaN({prop: 'value'}));

ご覧のように、同じ値をテストして異なる結果を得ました.
Nodeとすべての現代ブラウザはこの方法をサポートしています.Internet Explorerを除きます.他のブラウザをサポートしたい場合は、この方法の非常に簡単なpolyfillは次のとおりです.
    Number.isNaN = Number.isNaN || function (value) {
      return value !== value;
    };


NaNはJavaScriptで唯一の非自己値であり、これは自己に等しくない唯一の値であることを意味する.
Number.isFinite()
このメソッドは、前のメソッドと同じバックグラウンドを有します.JavaScriptでは、伝達された値が有限数であるかどうかをテストするための方法window.isFinite()がある.残念なことに、次の例では、数値に強制的に変換されたtrue値も返されます.
    // prints 'true'
    console.log(window.isFinite(10));
    
    // prints 'true'
    console.log(window.isFinite(Number.MAX_VALUE));
    
    // prints 'true'
    console.log(window.isFinite(null));
    
    // prints 'true'
    console.log(window.isFinite([]));

このため、ECMAScript 6にはisFinite()という方法がある.構文は次のとおりです.
    Number.isFinite(value)

valueはテストする値です.前のコード・セグメントの同じ値をテストすると、結果が異なります.
    
    // prints 'true'
    console.log(Number.isFinite(10));
    
    // prints 'true'
    console.log(Number.isFinite(Number.MAX_VALUE));
    
    // prints 'false'
    console.log(Number.isFinite(null));
    
    // prints 'false'
    console.log(Number.isFinite([]));


Nodeとすべての現代ブラウザはこの方法をサポートしています.Internet Explorerを除きます.MDNのメソッドページでpolyfillを見つけることができます.
Number.isSafeInteger()
Number.isSafeInteger()はES 6の新しい補完です.渡された値が安全な整数であるかどうかをテストし、この場合trueを返します.安全な整数は、次の2つの条件を満たす整数として定義されます.
  • この数字はIEEE-754の二重精度数
  • と正確に表すことができる.
  • 数字のIEEE−754は、IEEE−754表現に適合するように他の任意の整数を丸めた結果ではないことを示す.

  • この定義によれば、安全整数は、−(2の53乗−1)から2の53乗−1までのすべての整数である.
        
        
        Number.isSafeInteger(value)
         value       。              :
        
        // prints 'true'
        console.log(Number.isSafeInteger(5));
        
        // prints 'false'
        console.log(Number.isSafeInteger('19'));
        
        // prints 'false'
        console.log(Number.isSafeInteger(Math.pow(2, 53)));
        
        // prints 'true'
        console.log(Number.isSafeInteger(Math.pow(2, 53) - 1));
    
    

    Number.isSafeInteger()は、インターネットExplorerを除くすべての現代ブラウザでサポートされています.この方法のpolyfillは、es 6−shimからPaul Millerによって抽出される.
        
        Number.isSafeInteger = Number.isSafeInteger || function (value) {
          return Number.isInteger(value) && Math.abs(value) <= Number.MAX_SAFE_INTEGER;
        };

    このpolyfillはNumberに依存することに注意してください.isInteger()の前に説明した方法なので、後者に対してpolyfillを行ってこの方法を使用する必要があります.
    ECMAScript 6はまた2つの相関定数値を導入した:Number.MAX_SAFE_INTEGERとNumber.MIN_SAFE_INTEGER.前者はJavaScriptの最大セキュリティ整数、すなわち2の53乗−1を表し、後者は最小セキュリティ整数、すなわち−(2の53乗−1)を表す.
    Number.parseInt()とNumber.parseFloat()
    Number.parseInt()とNumber.parseFloat()メソッドは、この文書で述べた他の類似のメソッドとは異なり、以前のバージョンのECMAScriptに存在していたため、同じ部分に属しています.したがって、現在と同じ方法で使用し、同じ結果を得ることができます.構文は次のとおりです.
    
        // Signature of Number.parseInt
        Number.parseInt(string, radix)
        
        // Signature of Number.parseFloat
        Number.parseFloat(string)

    ここのstringは解析する値を表し、radixは変換に使用する基数stringです.
    次のコード・セグメントには、使用例が表示されます.
        // Prints '-3'
        console.log(Number.parseInt('-3'));
        
        // Prints '4'
        console.log(Number.parseInt('100', 2));
        
        // Prints 'NaN'
        console.log(Number.parseInt('test'));
        
        // Prints 'NaN'
        console.log(Number.parseInt({}));
        
        // Prints '42.1'
        console.log(Number.parseFloat('42.1'));
        
        // Prints 'NaN'
        console.log(Number.parseFloat('test'));
        
        // Prints 'NaN'
        console.log(Number.parseFloat({}));
    
    

    Nodeとすべての現代ブラウザは、Internet Explorerを除くこれらの方法をサポートしています.使用する場合は、次のようにグローバルメソッドを簡単に呼び出すことができます.
        // Polyfill Number.parseInt
        Number.parseInt = Number.parseInt || function () {
          return window.parseInt.apply(window, arguments);
        };
        
        // Polyfill Number.parseFloat
        Number.parseFloat = Number.parseFloat || function () {
          return window.parseFloat.apply(window, arguments);
        };
    
    
    
    

    の最後の部分
    このチュートリアルでは、ECMAScript 6に追加されたNumberデータ型とともに使用される新しい方法と定数について説明します.注目すべきは、ES 6は、私がまだ言及していない定数を追加したことです.Number.EPSILONは、最大公約数を表します.
    本文はブドウ城技術開発チームが発表したもので、転載は出典を明記してください:ブドウ城公式サイト
    詳細
    ここをクリックすると、Angular、React、Vue--WijmoJSの純粋なフロントエンドコントロールセットが全面的にサポートされていることがわかります.
    ここをクリックして、あなたのシステムを埋め込むことができるオンラインExcel--SpreadJSの純粋なフロントエンドの表のコントロールを理解します