最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一文搞懂?parseInt()函數(shù)異常行為

 更新時間:2023年05月15日 14:31:08   作者:前端小智  
這篇文章主要為大家介紹了一文搞懂?parseInt()函數(shù)異常行為示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

正文

parseInt()是內(nèi)置的 JS 函數(shù),用于解析數(shù)字字符串中的整數(shù)。 例如,解析數(shù)字字符串'100'

const number = parseInt('100');
number; // 100

如預期的那樣,'100'被解析為整數(shù) 100。

parseInt(numericalString, radix)還接受第二個參數(shù):從 2 到 36,表示字符串的基數(shù)。例如指定 16 表示被解析值是十六進制數(shù)。請注意,10 不是默認值,最常見的是 2、8、10 和 16。

例如我們使用 parseInt 以二進制方式解析數(shù)字字符串:

const number = parseInt('100', 2);
number; // 4

100 對應的二進制數(shù)是 4,所以返回 4。

1. parseInt() 的怪異行為

parseInt(numericalString)始終將其第一個參數(shù)轉換為字符串(如果不是字符串),然后將該數(shù)字字符串解析為整數(shù)值。

這就是為什么你可以(但不應該)使用parseInt()提取浮點數(shù)的整數(shù)部分的原因:

parseInt(0.5);      // => 0
parseInt(0.05);     // => 0
parseInt(0.005);    // => 0
parseInt(0.0005);   // => 0
parseInt(0.00005);  // => 0
parseInt(0.000005); // => 0

提取浮點數(shù)的整數(shù)部分,如0.5、0.05等,結果為0, 這和預期的一樣。

那提取0.0000005的整數(shù)部分怎么樣?

parseInt(0.0000005); // => 5

parseInt() 將浮點數(shù) 0.0000005 解析為 5。為什么 parseInt(0.0000005) 有這樣一個怪異的行為?

2.解決parseInt()怪異行為

我們再看一看 parseInt(numericalString) 的第一個參數(shù):如果它不是字符串,則將其轉換為字符串,然后解析,并返回解析后的整數(shù)。

這可能是第一個線索。

然后,我們嘗試將浮點數(shù)手動轉換為字符串表示形式:

String(0.5);      // => '0.5'
String(0.05);     // => '0.05'
String(0.005);    // => '0.005'
String(0.0005);   // => '0.0005' 
String(0.00005);  // => '0.00005'
String(0.000005); // => '0.000005'
String(0.0000005); // => '5e-7'

顯式轉換為string(0.0000005)字符串的行為與其他浮點數(shù)不同:它的表示方式是用指數(shù)的形式。

這是第二個重要的線索!

當指數(shù)符號被解析為整數(shù)時,我們會得到數(shù)字5

parseInt(0.0000005); // => 5
// same as
parseInt(5e-7);      // => 5
// same as
parseInt('5e-7');    // => 5

parseInt('5e-7')考慮第一個數(shù)字'5',但跳過'e-7'。

謎團已揭開! 因為 parseInt() 始終將其第一個參數(shù)轉換為字符串,所以小于10負6次方的浮點數(shù)將以指數(shù)表示。 然后 parseInt() 從 float 的指數(shù)表示法中提取整數(shù)。

另外,為了安全地提取浮點數(shù)的整數(shù)部分,建議使用 Math.floor() 函數(shù):

Math.floor(0.5);      // => 0
Math.floor(0.05);     // => 0
Math.floor(0.005);    // => 0
Math.floor(0.0005);   // => 0
Math.floor(0.00005);  // => 0
Math.floor(0.000005); // => 0
Math.floor(0.0000005); // => 0

3.總結

parseInt() 是將數(shù)字字符串解析為整數(shù)的函數(shù)。

嘗試使用parseInt()提取浮點數(shù)的整數(shù)部分時必須小心。

小于10的-6次方 (例如0.0000005,也就是5*10-7)的浮點數(shù)轉換成字符串時被寫成指數(shù)表示法(例如5e-7是0.0000005的指數(shù)表示法)。這就是為什么在 parseInt() 中使用這么小的浮點數(shù)會導致意想不到的結果:只有指數(shù)表記的重要部分(例如 5e-7 中的 5)會被解析。

那么現(xiàn)在大家可以試著解釋為什么 parseInt(999999999999999999999)等于1?

代碼部署后可能存在的BUG沒法實時知道,事后為了解決這些BUG,花了大量的時間進行l(wèi)og 調(diào)試,這邊順便給大家推薦一個好用的BUG監(jiān)控工具 Fundebug

以上就是一文搞懂 parseInt()函數(shù)異常行為的詳細內(nèi)容,更多關于parseInt()函數(shù)一次的資料請關注腳本之家其它相關文章!

相關文章

  • 高效率JavaScript編寫技巧整理

    高效率JavaScript編寫技巧整理

    最近在編寫一個JavaScript框架,發(fā)現(xiàn)有很多細節(jié)注意得不夠,于是開始關注JavaScript提高效率的一些技巧,在這里分享給大家,感興趣的你可以參考下
    2013-08-08
  • js實現(xiàn)簡單擲骰子小游戲

    js實現(xiàn)簡單擲骰子小游戲

    這篇文章主要為大家詳細介紹了js實現(xiàn)簡單搖篩子小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • 微信小程序框架wepy之動態(tài)控制類名

    微信小程序框架wepy之動態(tài)控制類名

    這篇文章主要為大家詳細介紹了微信小程序框架wepy之動態(tài)控制類名,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • Kimi模型調(diào)用聯(lián)動前端簡單交互頁面實現(xiàn)方法

    Kimi模型調(diào)用聯(lián)動前端簡單交互頁面實現(xiàn)方法

    這篇文章主要介紹了如何使用Flask搭建一個簡單的AI聊天應用,并通過OpenAI?API實現(xiàn)對話功能,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2025-02-02
  • JS模擬實現(xiàn)京東快遞單號查詢

    JS模擬實現(xiàn)京東快遞單號查詢

    這篇文章主要為大家詳細介紹了JS模擬實現(xiàn)京東快遞單號查詢,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • js實現(xiàn)手機拍照上傳功能

    js實現(xiàn)手機拍照上傳功能

    這篇文章主要為大家詳細介紹了js實現(xiàn)手機拍照上傳功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • JavaScript數(shù)組去重的幾種方法效率測試

    JavaScript數(shù)組去重的幾種方法效率測試

    JavaScript數(shù)組去重是前端面試酷愛的問題,問題簡單而又能看出程序員對計算機程序執(zhí)行過程的理解如何。數(shù)組去重的方法有很多,到底哪種是最理想的我不清楚。于是我測試了下數(shù)組去重的效率。測試二十萬個數(shù)據(jù),隨著數(shù)據(jù)越多效率很明顯的就體驗了出來。下面來一起看看吧。
    2016-10-10
  • JavaScript作用域鏈實例詳解

    JavaScript作用域鏈實例詳解

    這篇文章主要介紹了JavaScript作用域鏈,結合實例形式較為詳細的分析了作用域鏈的原理、功能與相關操作注意事項,需要的朋友可以參考下
    2019-01-01
  • 一個js的tab切換效果代碼[代碼分離]

    一個js的tab切換效果代碼[代碼分離]

    看了此文(YUI實現(xiàn)的Tab 切換),有感而發(fā),寫了一個tab切換的函數(shù),做學習之用。原生js實現(xiàn),因為框架不好玩。
    2010-04-04
  • JavaScript中async和await的使用及隊列詳情

    JavaScript中async和await的使用及隊列詳情

    這篇文章主要介紹了JavaScript中async和await的使用及隊列詳情,主要圍繞js中async和await簡單解析展開面試中可能會問到的關于隊列的一些場景和知識點,需要的朋友可以參考一下
    2022-07-07

最新評論

曲阜市| 波密县| 仁化县| 固原市| 沁源县| 天峨县| 余庆县| 浮山县| 汕尾市| 永修县| 丽水市| 南和县| 乌苏市| 思南县| 山阴县| 揭西县| 靖安县| 延寿县| 大厂| 开阳县| 应用必备| 新邵县| 镇赉县| 安多县| 黄石市| 鹿泉市| 潍坊市| 武强县| 崇左市| 冕宁县| 阿拉善左旗| 桦川县| 南郑县| 海安县| 宣汉县| 瓦房店市| 赤水市| 岳池县| 永州市| 迁安市| 望都县|