搜尋
首頁web前端js教程ES6中全新的數位方法總結(必看)

這篇文章帶給大家的內容是關於ES6中全新的數位方法總結(必看),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

本文介紹了ES6中全新的數位方法(ECMAScript 6)。

本文將向您介紹新增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(),用來測試傳遞的值是否為有限數。不幸的是,它也會傳回強制轉換為數字的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()是ES6的全新補充。它測試傳遞的值是否為安全整數,在這種情況下它會傳回true。安全整數定義為滿足以下兩個條件的整數:

  • 該數字可以精確地表示為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()在所有現代瀏覽器都支持,Internet Explorer除外。這種方法的polyfill是由Paul Miller從es6-shim中提取的,如:

    
    Number.isSafeInteger = Number.isSafeInteger || function (value) {
      return Number.isInteger(value) && Math.abs(value) <p>請注意,此polyfill依賴Number.isInteger()之前討論的方法,因此您需要對後者進行polyfill以使用此方法。 </p><p>ECMAScript 6也引入了兩個相關的常數值:<strong>Number.MAX_SAFE_INTEGER</strong>和<strong>Number.MIN_SAFE_INTEGER</strong>。前者表示JavaScript中的最大安全整數,即2的53次方 - 1,而後者表示最小安全整數,即 - (2的53次方 - 1)。 </p><h2 id="Number-parseInt-和Number-parseFloat">Number.parseInt()和Number.parseFloat()</h2><p>Number.parseInt()和Number.parseFloat()方法都屬於同一個部分,因為不像在這篇文章中提到的其他類似的方法,他們已經在以前版本的ECMAScript中存在。因此,您可以以與目前相同的方式使用它們,並獲得相同的結果。語法如下:</p><pre class="brush:php;toolbar:false">    // 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);
    };

相关推荐:

ES5与ES6数组方法总结

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

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


以上是ES6中全新的數位方法總結(必看)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
JavaScript的角色:使網絡交互和動態JavaScript的角色:使網絡交互和動態Apr 24, 2025 am 12:12 AM

JavaScript是現代網站的核心,因為它增強了網頁的交互性和動態性。 1)它允許在不刷新頁面的情況下改變內容,2)通過DOMAPI操作網頁,3)支持複雜的交互效果如動畫和拖放,4)優化性能和最佳實踐提高用戶體驗。

C和JavaScript:連接解釋C和JavaScript:連接解釋Apr 23, 2025 am 12:07 AM

C 和JavaScript通過WebAssembly實現互操作性。 1)C 代碼編譯成WebAssembly模塊,引入到JavaScript環境中,增強計算能力。 2)在遊戲開發中,C 處理物理引擎和圖形渲染,JavaScript負責遊戲邏輯和用戶界面。

從網站到應用程序:JavaScript的不同應用從網站到應用程序:JavaScript的不同應用Apr 22, 2025 am 12:02 AM

JavaScript在網站、移動應用、桌面應用和服務器端編程中均有廣泛應用。 1)在網站開發中,JavaScript與HTML、CSS一起操作DOM,實現動態效果,並支持如jQuery、React等框架。 2)通過ReactNative和Ionic,JavaScript用於開發跨平台移動應用。 3)Electron框架使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在前端開發中不可或缺,用於構建動態網頁和單頁面應用。 4.JavaScript通過Node.js在後端開發中發揮作用,支持全棧開發。

C/C在JavaScript口譯員和編譯器中的作用C/C在JavaScript口譯員和編譯器中的作用Apr 20, 2025 am 12:01 AM

C和C 在JavaScript引擎中扮演了至关重要的角色,主要用于实现解释器和JIT编译器。1)C 用于解析JavaScript源码并生成抽象语法树。2)C 负责生成和执行字节码。3)C 实现JIT编译器,在运行时优化和编译热点代码,显著提高JavaScript的执行效率。

JavaScript在行動中:現實世界中的示例和項目JavaScript在行動中:現實世界中的示例和項目Apr 19, 2025 am 12:13 AM

JavaScript在現實世界中的應用包括前端和後端開發。 1)通過構建TODO列表應用展示前端應用,涉及DOM操作和事件處理。 2)通過Node.js和Express構建RESTfulAPI展示後端應用。

JavaScript和Web:核心功能和用例JavaScript和Web:核心功能和用例Apr 18, 2025 am 12:19 AM

JavaScript在Web開發中的主要用途包括客戶端交互、表單驗證和異步通信。 1)通過DOM操作實現動態內容更新和用戶交互;2)在用戶提交數據前進行客戶端驗證,提高用戶體驗;3)通過AJAX技術實現與服務器的無刷新通信。

了解JavaScript引擎:實施詳細信息了解JavaScript引擎:實施詳細信息Apr 17, 2025 am 12:05 AM

理解JavaScript引擎內部工作原理對開發者重要,因為它能幫助編寫更高效的代碼並理解性能瓶頸和優化策略。 1)引擎的工作流程包括解析、編譯和執行三個階段;2)執行過程中,引擎會進行動態優化,如內聯緩存和隱藏類;3)最佳實踐包括避免全局變量、優化循環、使用const和let,以及避免過度使用閉包。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),