先介紹兩個API:
一、number 類型的 toString 方法
語法
參數
| 參數 | 描述 |
|---|---|
| radix | 可選/Number類型指定的基數(進制數),默認為10。 |
參數radix支持 [2, 36] 之間的整數。例如:參數值為2,則表示二進制;為8,則表示八進制;為16,則表示十六進制。
如果省略參數radix,則默認為10(十進制)。
返回值
toString()函數的返回值為String類型,返回該數字指定進制形式的字符串。
二、string 轉 number 的方法
語法
參數
| 參數 | 描述 |
|---|---|
| numString | String類型需要轉換為整數的字符串。 |
| radix | 可選/Number類型指定的進制基數。 |
參數radix可以是一個介於 [2, 36] 之間的數值。例如:參數radix為2,則將numString視作二進制;參數radix為8,則視作八進制;參數radix為16,則視作十六進制。
如果沒有提供radix參數,則parseInt()函數將會根據參數numString的前綴來決定轉換的進制基數。如果numString的前綴是0x
,則轉換為十六進制;如果前綴是0
,則轉換為八進制;其他情況均轉換為十進制。
返回值
parseInt()函數的返回值為Number類型,返回轉換后的整數。
如果指定的字符串中包含非數字字符,只要字符串開頭的一部分符合整數的轉換規則,則parseInt()函數會將這一部分字符串轉化為整數(從字符串開頭,直到遇到非數字字符為止)。如果字符串以非數字字符開頭,則返回NaN。
上代碼!
(100).toString(2) // "1100100"
數字轉8進制
(100).toString(8) // "144"
數字轉16進制
(100).toString(16) // "64"
16進制轉10進制
parseInt(0x64) // 100 parseInt('0x64') // 100 parseInt('0x64',16) // 100 第二參數寫了更好,以免迷糊 parseInt('ff') // NaN parseInt('ff',16) // 255 這里沒有0x打頭,必須要注明要轉的基數
8進制轉10進制
parseInt(0100); // 64 先轉成字符串,再以8進制解析 parseInt("0100",8); // 64 正確寫法,無歧義 !!! parseInt("0100"); // 100 官方表示不確定:但是測試結果,谷歌瀏覽器當成10進制輸入。所以不建議這樣寫
2進制轉10進制
parseInt("11",2); //返回 3
補充
ES6支持二進制和八進制的字面量
1、在數字前面添加 0o 或者 0O 即可將其轉換為八進制
2、在數字前面添加 0b 或者 0B 即可將其轉換為二進制
let oValue = 0o10; console.log(oValue); //8 let bValue = 0b10; console.log(bValue); //2
Thanks for watching !
