javascript parseInt() 函數的進位轉換注意細節_javascript技巧
parseInt(string, radix) 有2個參數,第一個string 是傳入的數值,第二個radix是傳入數值的進制,參數radix 可以忽略,預設為10,各種進制的數轉換為十進制整數(如果不是整數,向下取整)。
radix 的值範圍是 2~36,如果 radix 為 1 或 radix>36 ,轉換結果將是 NaN ,如果 radix 為 0 或其它值將被忽略,radix 默認為 10 。
該函數要求第一個參數是字串,如果不是字串將被轉換成字串,而且,在進行轉換之前,字串參數的左側符合進制數所使用字元集的字元被截取出來用於進制數的轉換。
字串參數開頭和結尾的空格會被忽略。
parseInt(param,radix) 相當於parseInt(String(param).trim(),radix)
例如, parseInt(010) // 8,處理過程是
010 --> 8 //0 開頭,八進位數
8 --> '8'
parseInt('8') //忽略radix ,傳入的第一個參數被辨識為10進位數
parseInt(0x10) // parseInt(16) 得到十進位16
parseInt(010,16) // par ('8',16) ,得到8
parseInt(010,7) // parseInt('8',7) , 8 超出7 進位數所使用字元的範圍被丟棄,轉換結果為NaN
parseInt(0x10,8) // parseInt('16',8) 得到14
parseInt(0x13,8) // parseInt('19',8) 字元9 超出了8進位數所使用字元的範圍,被丟棄,轉換結果為1
如果第一個參數直接傳入字串,忽略radix ,則:
字串以0 開頭,預設被辨識為8 進位( IE 9辨識為10進制,ie 6-8 辨識為8 進位)
字串以0x 開頭,預設被辨識為16 進位
否則辨識為10進位
parseInt('010') //8 ,ie9 得到10
parseInt('018' ) //1 ,ie9 得到18
parseInt('017') //15 , ,ie9 得到15
parseInt('010',8) //直接辨識為8進制,轉換結果8
parseInt('010',7) //直接辨識為7進制,轉換結果7
parseInt('010',16) //直接辨識為16進制,轉換結果16
parseInt(' 0x10') //16
parseInt('0x1g') //1
parseInt('0x1f') //31
parseInt('0x10',8) //直接辨識為8進位,字元x 超出8進位數所使用字元的範圍,轉換結果0
parseInt('0x10',15) // 轉換結果0
parseInt('0x10',16) // 0x 符合16進位數的表達格式,正確辨識為16 進制數,轉換結果同parseInt('10',16) 為16
parseInt('0x10',17) // 辨識為17進制,字元x 超出17進位數所使用字元的範圍,轉換結果0
parseInt(true) //NaN ,注意區別布林型在Number 函數中的用法, Number(true) //1
需要特別注意的
1/0 // Infinity
Infinity.toString() // 'Infinity'
於是,坑爹的來了:
parseInt(1/0,18) // NaN
parseInt(1/0,19) //18
因為字元i 在19 進位數使用的字元集內,字元n 及後面的被丟棄
parseInt(1/0,19) 實際為parseInt('i',19)
另外還有
parseInt(NaN,36)Int // 30191
因為字元n 在36 進位中相當於十進位23,a 相當於十進位10,於是有
23*36*36 10*36 23 = 30191
parseInt(1/0,36) // 1461559270678 ,實為parseInt('Infinity',36)
parseFloat 是沒有進位參數的,只能處理10進位數。
parseFloat.length //1

熱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)

JavaScript是現代Web開發的基石,它的主要功能包括事件驅動編程、動態內容生成和異步編程。 1)事件驅動編程允許網頁根據用戶操作動態變化。 2)動態內容生成使得頁面內容可以根據條件調整。 3)異步編程確保用戶界面不被阻塞。 JavaScript廣泛應用於網頁交互、單頁面應用和服務器端開發,極大地提升了用戶體驗和跨平台開發的靈活性。

Python和JavaScript開發者的薪資沒有絕對的高低,具體取決於技能和行業需求。 1.Python在數據科學和機器學習領域可能薪資更高。 2.JavaScript在前端和全棧開發中需求大,薪資也可觀。 3.影響因素包括經驗、地理位置、公司規模和特定技能。

如何在JavaScript中將具有相同ID的數組元素合併到一個對像中?在處理數據時,我們常常會遇到需要將具有相同ID�...

學習JavaScript不難,但有挑戰。 1)理解基礎概念如變量、數據類型、函數等。 2)掌握異步編程,通過事件循環實現。 3)使用DOM操作和Promise處理異步請求。 4)避免常見錯誤,使用調試技巧。 5)優化性能,遵循最佳實踐。

實現視差滾動和元素動畫效果的探討本文將探討如何實現類似資生堂官網(https://www.shiseido.co.jp/sb/wonderland/)中�...

深入探討console.log輸出差異的根源本文將分析一段代碼中console.log函數輸出結果的差異,並解釋其背後的原因。 �...

JavaScript的最新趨勢包括TypeScript的崛起、現代框架和庫的流行以及WebAssembly的應用。未來前景涵蓋更強大的類型系統、服務器端JavaScript的發展、人工智能和機器學習的擴展以及物聯網和邊緣計算的潛力。
