為ecmascript做準備6:新數字方法
本文涵蓋了ES6中的新的和改進的數字方法(ecmascript 6)。
>這是有關ES6的新功能的系列的一部分,在其中我們還討論了可用於字符串和數組數據類型的新方法,但也討論了新類型的數據類型,例如MAP和FEAMMAP。>我將向您介紹添加到數字數據類型中的新方法和常數。正如我們將看到的那樣,其中一些數字方法並不是什麼新鮮事物,但是它們已得到改進和/或在正確的對像下移動(例如,isnan())。與往常一樣,我們還將通過一些示例將新知識付諸實踐。因此,事不宜遲,讓我們開始。
>鑰匙要點
ES6
介紹了幾種新數字方法,包括number.isinteger(),number.isnan(),number.Siffinite(),number.issafeInteger(),number.parseint()和number.parsefloat()。 >- number.isinteger()檢查傳遞的值是否為整數,number.isnan()測試是否值等於nan,而number.Siffinite()測試是否傳遞的值是有限的數字。
- number.issafeinteger()測試是否傳遞的值是一個安全整數,定義為一個可以完全表示為IEEE-754雙重精度編號的整數。
- number.parseint()和number.parsefloat()並不是新事物,但它們已在數字對像下移動,以實現全球模塊化。他們分析字符串參數並分別返回整數和浮點數。 ES6還引入了兩個相關的常數值:number.max_safe_integer和number.min_safe_integer,代表JavaScript中的最大和最小安全整數。
- 我要涵蓋的第一個方法是number.isinteger()。這是JavaScript的新補充,這是您過去自己定義和使用的東西。它確定傳遞給函數的值是否為整數。如果傳遞值是整數,則此方法將返回true,否則為false。這種方法的實現非常容易,但是本地進行本地化仍然很好。重新創建此功能的可能解決方案之一是:
這兩個功能都很好且有用,但它們不尊重Ecmascript 6的規格。因此,如果您想對此方法進行多填充,則需要一些更複雜的東西,正如我們很快會看到的那樣。目前,讓我們從發現number.isinteger()的語法開始:
數字參數代表您要測試的值。
<span>Number.isInteger = Number.isInteger || function (number) { </span> <span>return typeof number === 'number' && number % 1 === 0; </span><span>}; </span>
使用此方法使用的一些示例如下:
<span>Number.isInteger = Number.isInteger || function (number) { </span> <span>return typeof number === 'number' && Math.floor(number) === number; </span><span>}; </span>
>除了Internet Explorer,該方法在節點和所有現代瀏覽器中都支持該方法。如果您需要支持較舊的瀏覽器,則可以使用一個多填充,例如方法頁面上的Mozilla開發人員網絡上可用的瀏覽器。為了方便起見,下面還復制了這一點:
<span>Number.isInteger = Number.isInteger || function (number) { </span> <span>return typeof number === 'number' && number % 1 === 0; </span><span>}; </span>
>過去您編寫了任何JavaScript代碼,此方法對您來說不應該是新的。一段時間以來,JavaScript有了一種稱為isnan()的方法,它通過窗口對象暴露。此方法測試值是否等於NAN,在這種情況下,它返回true或其他錯誤。 window.isnan()的問題是,它存在一個問題,因為它也返回true,因為
>轉換為數字的值將為nan。為了讓您對此問題有具體的想法,以下所有陳述返回true:
<span>Number.isInteger = Number.isInteger || function (number) { </span> <span>return typeof number === 'number' && Math.floor(number) === number; </span><span>}; </span>
>在這裡,值是您要測試的值。該方法的一些示例用途如下:
><span>Number.isInteger(number) </span>
>以下片段的實時演示如下所示,也可以在JSBIN上找到。
除了Internet Explorer,該方法在節點和所有現代瀏覽器中都支持該方法。如果您想支持其他瀏覽器,那麼此方法的非常簡單的多填充如下:<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>
這項工作的原因是因為NAN是JavaScript中唯一的非反射值,這意味著它是唯一不等於自身的值。
>
number.Isfinite()此方法與上一個方法共享相同的故事。在JavaScript中,有一種稱為window.isfinite()的方法,該方法測試是否傳遞的值是有限的數字。不幸的是,對於
<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>
出於這個原因,在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>
除了Internet Explorer,該方法在節點和所有現代瀏覽器中都支持該方法。您可以在MDN的方法頁面上找到一個多填充。
>number.issafeInteger()
number.issafeinteger()方法是ES6的全新添加。它測試傳遞的值是否是一個安全整數的數字,在這種情況下,它返回了TRUE。安全整數定義為滿足以下兩個條件的整數:
- 該數字可以完全表示為IEEE-754雙精度編號
-
該數字的IEEE-754代表不可能是將任何其他整數符合IEEE-754表示的結果。
> - >基於此定義,安全整數是 - (2
- 1)包含在2 53> 53 > 1的整數中。這些價值觀很重要,我們將在本節的末尾進行更多討論。 >。
該方法的語法為:
>在這裡,值是您要測試的值。該方法的一些示例用途如下:
><span>Number.isInteger = Number.isInteger || function (number) { </span> <span>return typeof number === 'number' && number % 1 === 0; </span><span>}; </span>
>該代碼的實時演示如下所示,也可在JSBIN上找到。
除了Internet Explorer外,
<span>Number.isInteger = Number.isInteger || function (number) { </span> <span>return typeof number === 'number' && Math.floor(number) === number; </span><span>}; </span>
> ecmascript 6還引入了兩個相關的常數值:number.max_safe_integer和number.min_safe_integer。前者代表JavaScript中的最大安全整數 - 即2
53> 1-而後者是最小安全整數,即 - (253
1)。您可能會注意到,這些是我之前引用的相同值。<span>Number.isInteger(number) </span>
number.parseint()和number.parsefloat()
number.parseint()和number.parsefloat()方法在同一部分中介紹,因為與本文中提到的其他類似方法不同,它們已經存在於以前的Ecmascript中舊的全球版本。因此,您可以以到目前為止所做的方式使用它們,並且可以期待相同的結果。將這些方法添加到數字的目的是全球的模塊化。
為了完整,我正在報告他們的語法:
>下面顯示了此代碼的實時演示,也可以在JSBIN上找到。
> 除了Internet Explorer,這些方法在節點和所有現代瀏覽器中都支持這些方法。如果您想將它們進行多填充,則可以簡單地調用其相關的全局方法,如下所示:
><span>Number.isInteger = Number.isInteger || function (number) { </span> <span>return typeof number === 'number' && number % 1 === 0; </span><span>}; </span>
>瀏覽器支持
>以下圖形描述了瀏覽器對ES6中內置數字對象的擴展的支持。鼠標在盒子上查看相應瀏覽器版本的百分比使用。
>我可以使用ES6數字嗎? Caniuse.com主要瀏覽器中對ES6數字功能的支持數據。
ES6數字方法:總結
在本教程中,我們介紹了與數字數據類型一起使用的Ecmascript 6中添加的新方法和常數。值得注意的是,ES6還增加了我尚未提到的另一個常數。這是number.epsilon和代表一個和最小的值之間的差異大於一個數字的大於一個數字。 在最後一個註釋中,我們已經結束了數字數據類型的旅程。
>新的ES6數字方法是什麼?它們如何工作?
ES6引入了幾種新的數字方法,使與JavaScript中的數字更易於使用。其中包括number.Isfinite(),number.isinteger(),number.isnan(),number.parsefloat()和number.parseint()。這些方法中的每一個都執行特定功能。例如,number.Iffinite()檢查值是否為有限數,而number.isinteger()檢查值是否為整數。 number.isnan()檢查值是否為nan(不是數字),number.parsefloat()和number.parseint()分別返回浮點數和整數。 epsilon方法在es6?
number.eps6中如何工作。 ES6中的epsilon是一個新常數,代表兩個代表數字之間的最小間隔。在比較浮點數的平等時,這特別有用。由於計算機中浮點數表示的方式,即使它們看起來也不完全相同。 number.epsilon可用於檢查兩個數字之間的差異是否小於最小的間隔,表明它們實際上相等。 ES6中的number.issafeinteger()方法用於確定值是否是安全整數。安全整數是一個可以完全表示為IEEE -754雙精度編號的數字,這意味著它在 - (2^53 - 1)和2^53 - 1。確保在JavaScript中可以準確表示一個數字,這在某些數學操作中可能很重要。
> number.parseint()方法與global parseint()函數有何不同?數字對象的一部分。這意味著您可以將其稱為數字對像上的方法,而不是作為獨立函數。功能是相同的 - 它將字符串轉換為指定的radix或base。 number.max_safe_integer和number.min_safe_integer常數ES6中代表JavaScript中的最大和最小安全整數值。安全整數是可以完全表示為IEEE-754雙精度編號的整數。當您需要檢查一個數字是否在安全整數範圍內時,這些常數很有用,這在某些數學操作中可能很重要。
>>我如何在es6?
中使用number.Isfinite()方法是使用es6中的number.isfinite()方法來確定值是否為有限數字。這與全局isfinite()函數不同,該函數將其參數轉換為數字,然後在測試它之前。 number.Iffinite()不執行此轉換,因此僅在參數為有限數字時返回true,而如果參數是不能轉換為數字的值。 eS6?
中的number.parsefloat()方法在es6中的number.parsefloat()方法在es6中的number.parsefloat()方法基本上與global parsefloat()函數相同,但它是數字對象的一部分。這意味著您可以將其稱為數字對像上的方法,而不是作為獨立函數。功能是相同的 - 它解析了一個字符串參數並返回浮點數。
如何在es6?
中使用number.isinteger()方法number.isinteger() ES6中的方法用於確定值是否是整數。如果該值是一個不是無窮大的,而不是NAN的數字,則此方法將返回true,並且可以在沒有分數組件的情況下表示。當您需要檢查一個數字是否是整數時,這很有用,這在某些數學操作中可能很重要。>
>新的ES6編號方法的實際應用是什麼?
>新的ES6數字方法提供了更健壯,更精確的方法來使用JavaScript中的數字。它們可用於檢查一個數字是有限的,整數,NAN還是安全的整數,並將字符串分解為數字。這些方法在需要精確控制數字的數學操作,數據驗證以及其他任何地方都可能特別有用。
以上是為ecmascript做準備6:新數字方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

從C/C 轉向JavaScript需要適應動態類型、垃圾回收和異步編程等特點。 1)C/C 是靜態類型語言,需手動管理內存,而JavaScript是動態類型,垃圾回收自動處理。 2)C/C 需編譯成機器碼,JavaScript則為解釋型語言。 3)JavaScript引入閉包、原型鍊和Promise等概念,增強了靈活性和異步編程能力。

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

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

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

Python和JavaScript在社區、庫和資源方面的對比各有優劣。 1)Python社區友好,適合初學者,但前端開發資源不如JavaScript豐富。 2)Python在數據科學和機器學習庫方面強大,JavaScript則在前端開發庫和框架上更勝一籌。 3)兩者的學習資源都豐富,但Python適合從官方文檔開始,JavaScript則以MDNWebDocs為佳。選擇應基於項目需求和個人興趣。

Python和JavaScript在開發環境上的選擇都很重要。 1)Python的開發環境包括PyCharm、JupyterNotebook和Anaconda,適合數據科學和快速原型開發。 2)JavaScript的開發環境包括Node.js、VSCode和Webpack,適用於前端和後端開發。根據項目需求選擇合適的工具可以提高開發效率和項目成功率。

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