検索

この記事は、ES6 の新しいデジタル手法の概要を示しています (必読)。必要な方は参考にしていただければ幸いです。

この記事では、ES6 (ECMAScript 6) の新しい数値メソッドを紹介します。

この記事では、Number データ型を追加する新しいメソッドと定数を紹介します。もちろん、ここで使用されているメソッドは完全に新しいわけではありませんが、すでに および/または (isNaN() など) 内で直接移動できます。いくつかの例を使ってこれを実践していきます。 Number数据类型的新方法和常量。当然,这里采用的方法并不完全是全新的,但它们已经可以在 and/or 直接移动(例如isNaN())。我们会通过一些例子进行实践。

Number.isInteger()

我要介绍的第一种方法是Number.isInteger()。它是JavaScript的新增功能,您之前可能已经定义和使用过这个方法。它确定传递给函数的值是否为整数。如果函数值是true,则返回此方法,false则跳出。这种方法的实现非常简单,并且是原生JavaScript语法。重写此功能的方法之一是:

    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;
    };

虽然以上两个方法均能判断传参是否为整数,但它们不符合ECMAScript 6规范。所以,如果你想要严格按照ES6的规范改写,就请从以下语法开始:

    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和所有现代浏览器都支持该方法,Internet Explorer除外。如果您需要支持旧版浏览器,则可以使用polyfill,例如火狐浏览器Mozilla Developer Network上提供的polyfill 。请看下面的代码:

    if (!Number.isInteger) {
      Number.isInteger = function isInteger (nVal) {
        return typeof nVal === 'number' &&
          isFinite(nVal) &&
          nVal > -9007199254740992 &&
          nVal <h2 id="Number-isNaN">Number.isNaN()</h2><p>如果您以前编写过JavaScript代码,则此方法对您来说并不陌生。JavaScript有一个叫做isNaN()的方法通过window对象公开。此方法用以判断测试值是否等于NaN,是返回true,否则返回false。不过直接调用window.isNaN()有一个问题,当测试值被强制转换为数字时,该方法会返回true值。为了让您对此问题有一个具体的了解,以下所有语句都会返回:<strong>true</strong></p><pre class="brush:php;toolbar:false">    // 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()

Number.isInteger()

最初に紹介するメソッドは Number.isInteger() です。これは JavaScript にとって新しいものですが、以前にこのメソッドを定義して使用したことがあるかもしれません。関数に渡された値が整数であるかどうかを判断します。関数の値が true の場合、このメソッドは戻り、false の場合、メソッドは終了します。このメソッドの実装は非常に簡単で、ネイティブ JavaScript 構文です。この関数を書き直す 1 つの方法は次のとおりです:

    // 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([]));
趣味のために、この関数を書き直してまったく別のメソッドを使用しました:

    Number.isFinite(value)
上記の 2 つのメソッドは、渡されたパラメーターが整数であるかどうかを判断できますが、ECMAScript に準拠していません。 6仕様。したがって、厳密に ES6 仕様に従って書き換えたい場合は、次の構文から始めてください:

    
    // 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([]));

パラメータ番号はテストする値を表します。

このメソッドの使用例を以下に示します:
        
        
        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));
  • このメソッドは、Node.js と、Internet Explorer を除くすべての最新のブラウザーでサポートされています。古いブラウザをサポートする必要がある場合は、Mozilla Developer Network で Firefox 用に入手できるものなどのポリフィルを使用できます。以下のコードを見てください:

        
        Number.isSafeInteger = Number.isSafeInteger || function (value) {
          return Number.isInteger(value) && Math.abs(value) Number.isNaN()
  • 以前に JavaScript コードを書いたことがある場合、このメソッドは目新しいものではありません。 JavaScript には、window オブジェクトを通じて公開される isNaN() というメソッドがあります。このメソッドは、テスト値が NaN に等しいかどうかを判断するために使用され、true を返します。それ以外の場合は false を返します。ただし、window.isNaN() を直接呼び出すと問題が発生し、テスト値を強制的に数値に変換すると、このメソッドは true 値を返します。問題の具体的なアイデアを示すために、次のステートメントはすべて

    true

  •     // Signature of Number.parseInt
        Number.parseInt(string, radix)
        
        // Signature of Number.parseFloat
        Number.parseFloat(string)
    を返します。 おそらく必要なのは、渡された値が NaN の場合にのみ true を返すメソッドです。これが、ECMAScript 6 で Number.isNaN() が導入された理由です。その構文は次のとおりです:

        // 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);
        };
    NaN​​ は JavaScript の唯一の非自己値であり、それ自体と等しくない唯一の値であることを意味します。

    Number.isFinite()

    このメソッドの背景は前のメソッドと同じです。 JavaScript には、渡された値が有限数であるかどうかをテストするために使用されるメソッド window.isFinite() があります。残念ながら、次のような数値に強制された true 値も返します。

    rrreee このため、ECMAScript 6 には isFinite() と呼ばれるメソッドがあります。構文は次のとおりです。 rrreeevalue はテストする値です。前のスニペットと同じ値をテストすると、結果が異なることがわかります: rrreee

    このメソッドは、Node と、Internet Explorer を除くすべての最新のブラウザーでサポートされています。そのポリフィルは MDN のメソッド ページで見つけることができます。

    Number.isSafeInteger()

    Number.isSafeInteger() は ES6 に新しく追加されたものです。渡された値が安全な整数かどうかをテストし、安全な整数の場合は true を返します。安全な整数は、次の 2 つの条件を満たす整数として定義されます:

    数値は IEEE-754 double として正確に表現できます🎜🎜🎜🎜数値の IEEE-754 表現は、四捨五入された他の整数にはできませんfit IEEE-754 は結果を表します。 🎜🎜🎜🎜この定義によれば、安全な整数は🎜-(2の53乗-1)🎜から🎜2の53乗-1🎜までのすべての整数です。 🎜rrreee🎜Number.isSafeInteger() は、Internet Explorer を除くすべての最新のブラウザーでサポートされています。このメソッドのポリフィルは、Paul Miller によって es6-shim から次のように取得されました。 🎜rrreee🎜 このポリフィルは前述の Number.isInteger() メソッドに依存しているため、このメソッドを使用するには後者をポリフィルする必要があることに注意してください。 🎜🎜ECMAScript 6 では、🎜Number.MAX_SAFE_INTEGER🎜 と 🎜Number.MIN_SAFE_INTEGER🎜 という 2 つの関連する定数値も導入されています。前者は JavaScript の最大の安全な整数 (2 の 53 乗 - 1) を表し、後者は最小の安全な整数 - (2 の 53 乗 - 1) を表します。 🎜🎜Number.parseInt() メソッドと Number.parseFloat() 🎜🎜Number.parseInt() メソッドと Number.parseFloat() メソッドは両方とも同じセクションに属します。これは、この記事で説明されている他の同様のメソッドとは異なり、以前のバージョンのECMAScript。したがって、現在と同じ方法で使用でき、同じ結果が得られます。構文は次のとおりです: 🎜rrreee🎜 ここで、string は解析する値を表し、radix は変換に使用する基数文字列です。 🎜🎜次のコード スニペットは使用例を示しています: 🎜
        // 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);
        };

    相关推荐:

    ES5与ES6数组方法总结

    关于ES6中字符串string常用的新增方法分享

    ES6里关于数字新增判断详解


    以上がES6 の新しい数値手法の概要 (必読)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
    JavaScriptはCで書かれていますか?証拠を調べるJavaScriptはCで書かれていますか?証拠を調べるApr 25, 2025 am 12:15 AM

    はい、JavaScriptのエンジンコアはCで記述されています。1)C言語は、JavaScriptエンジンの開発に適した効率的なパフォーマンスと基礎となる制御を提供します。 2)V8エンジンを例にとると、そのコアはCで記述され、Cの効率とオブジェクト指向の特性を組み合わせて書かれています。3)JavaScriptエンジンの作業原理には、解析、コンパイル、実行が含まれ、C言語はこれらのプロセスで重要な役割を果たします。

    JavaScriptの役割:WebをインタラクティブでダイナミックにするJavaScriptの役割:WebをインタラクティブでダイナミックにするApr 24, 2025 am 12:12 AM

    JavaScriptは、Webページのインタラクティブ性とダイナミズムを向上させるため、現代のWebサイトの中心にあります。 1)ページを更新せずにコンテンツを変更できます。2)Domapiを介してWebページを操作する、3)アニメーションやドラッグアンドドロップなどの複雑なインタラクティブ効果、4)ユーザーエクスペリエンスを改善するためのパフォーマンスとベストプラクティスを最適化します。

    CおよびJavaScript:接続が説明しましたCおよびJavaScript:接続が説明しましたApr 23, 2025 am 12:07 AM

    CおよびJavaScriptは、WebAssemblyを介して相互運用性を実現します。 1)CコードはWebAssemblyモジュールにコンパイルされ、JavaScript環境に導入され、コンピューティングパワーが強化されます。 2)ゲーム開発では、Cは物理エンジンとグラフィックスレンダリングを処理し、JavaScriptはゲームロジックとユーザーインターフェイスを担当します。

    Webサイトからアプリまで:JavaScriptの多様なアプリケーションWebサイトからアプリまで:JavaScriptの多様なアプリケーションApr 22, 2025 am 12:02 AM

    JavaScriptは、Webサイト、モバイルアプリケーション、デスクトップアプリケーション、サーバー側のプログラミングで広く使用されています。 1)Webサイト開発では、JavaScriptはHTMLおよびCSSと一緒にDOMを運用して、JQueryやReactなどのフレームワークをサポートします。 2)ReactNativeおよびIonicを通じて、JavaScriptはクロスプラットフォームモバイルアプリケーションを開発するために使用されます。 3)電子フレームワークにより、JavaScriptはデスクトップアプリケーションを構築できます。 4)node.jsを使用すると、JavaScriptがサーバー側で実行され、高い並行リクエストをサポートします。

    Python vs. JavaScript:ユースケースとアプリケーションと比較されますPython vs. JavaScript:ユースケースとアプリケーションと比較されますApr 21, 2025 am 12:01 AM

    Pythonはデータサイエンスと自動化により適していますが、JavaScriptはフロントエンドとフルスタックの開発により適しています。 1. Pythonは、データ処理とモデリングのためにNumpyやPandasなどのライブラリを使用して、データサイエンスと機械学習でうまく機能します。 2。Pythonは、自動化とスクリプトにおいて簡潔で効率的です。 3. JavaScriptはフロントエンド開発に不可欠であり、動的なWebページと単一ページアプリケーションの構築に使用されます。 4. JavaScriptは、node.jsを通じてバックエンド開発において役割を果たし、フルスタック開発をサポートします。

    JavaScript通訳者とコンパイラにおけるC/Cの役割JavaScript通訳者とコンパイラにおけるC/Cの役割Apr 20, 2025 am 12:01 AM

    CとCは、主に通訳者とJITコンパイラを実装するために使用されるJavaScriptエンジンで重要な役割を果たします。 1)cは、JavaScriptソースコードを解析し、抽象的な構文ツリーを生成するために使用されます。 2)Cは、Bytecodeの生成と実行を担当します。 3)Cは、JITコンパイラを実装し、実行時にホットスポットコードを最適化およびコンパイルし、JavaScriptの実行効率を大幅に改善します。

    JavaScript in Action:実際の例とプロジェクトJavaScript in Action:実際の例とプロジェクトApr 19, 2025 am 12:13 AM

    現実世界でのJavaScriptのアプリケーションには、フロントエンドとバックエンドの開発が含まれます。 1)DOM操作とイベント処理を含むTODOリストアプリケーションを構築して、フロントエンドアプリケーションを表示します。 2)node.jsを介してRestfulapiを構築し、バックエンドアプリケーションをデモンストレーションします。

    JavaScriptとWeb:コア機能とユースケースJavaScriptとWeb:コア機能とユースケースApr 18, 2025 am 12:19 AM

    Web開発におけるJavaScriptの主な用途には、クライアントの相互作用、フォーム検証、非同期通信が含まれます。 1)DOM操作による動的なコンテンツの更新とユーザーインタラクション。 2)ユーザーエクスペリエンスを改善するためにデータを提出する前に、クライアントの検証が実行されます。 3)サーバーとのリフレッシュレス通信は、AJAXテクノロジーを通じて達成されます。

    See all articles

    ホットAIツール

    Undresser.AI Undress

    Undresser.AI Undress

    リアルなヌード写真を作成する AI 搭載アプリ

    AI Clothes Remover

    AI Clothes Remover

    写真から衣服を削除するオンライン AI ツール。

    Undress AI Tool

    Undress AI Tool

    脱衣画像を無料で

    Clothoff.io

    Clothoff.io

    AI衣類リムーバー

    Video Face Swap

    Video Face Swap

    完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

    ホットツール

    SublimeText3 中国語版

    SublimeText3 中国語版

    中国語版、とても使いやすい

    SAP NetWeaver Server Adapter for Eclipse

    SAP NetWeaver Server Adapter for Eclipse

    Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

    WebStorm Mac版

    WebStorm Mac版

    便利なJavaScript開発ツール

    SublimeText3 Linux 新バージョン

    SublimeText3 Linux 新バージョン

    SublimeText3 Linux 最新バージョン

    MinGW - Minimalist GNU for Windows

    MinGW - Minimalist GNU for Windows

    このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。