對(duì) parseInt 的理解

parseInt(string, radix) 將一個(gè)字符串 string 轉(zhuǎn)換為 radix 進(jìn)制的整數(shù), radix 為介于2-36之間的數(shù)。
如果 parseInt 遇到的字符不是指定 radix 參數(shù)中的數(shù)字,它將忽略該字符以及所有后續(xù)字符,并返回到該點(diǎn)為止已解析的整數(shù)值。 parseInt 將數(shù)字截?cái)酁檎麛?shù)值。 允許前導(dǎo)和尾隨空格。

參數(shù)

/**

  • string 要被解析的值。如果參數(shù)不是一個(gè)字符串,則將其轉(zhuǎn)換為字符串。字符串開頭的空白符將會(huì)被忽略。
  • radix(可選) 從 2 到 36,代表該進(jìn)位系統(tǒng)的數(shù)字。例如說(shuō)指定 10 就等于指定十進(jìn)位。請(qǐng)注意,通常預(yù)設(shè)值不是 10 進(jìn)位!
    */
    parseInt(string, radix)
parseInt(' 012u', 5) // 將 ' 012u' 裝換成 5 進(jìn)制數(shù)  
過(guò)濾前面的空格直到下一個(gè)不能轉(zhuǎn)換的位置得出 012 為5進(jìn)制的數(shù), 
然后再將 012 轉(zhuǎn)換成十進(jìn)制 0 * 5^2^ + 1 * 5^1^ + 2 * 5^0^ = 7

parseInt(' 0125', 5) // 將 ' 0125' 裝換成 5 進(jìn)制數(shù)  
過(guò)濾前面的空格直到下一個(gè)不能轉(zhuǎn)換的位置得出 012(5 不能提出出來(lái)的原因是:因?yàn)?五 進(jìn)制只有0、1、2、3、4) 為5進(jìn)制的數(shù), 
然后再將 012 轉(zhuǎn)換成十進(jìn)制 0 * 5^2^ + 1 * 5^1^ + 2 * 5^0^ = 7

返回值

一個(gè)整數(shù)或者 NaN

當(dāng):
radix 小于 2 或大于 36 ,或第一個(gè)非空格字符不能轉(zhuǎn)換為數(shù)字。則返回 NaN

如果 radix 是 undefined、0或未指定的,JavaScript會(huì)假定以下情況:

  • 如果輸入的 string以 "0x"或 "0x"(一個(gè)0,后面是小寫或大寫的X)開頭,那么radix被假定為16,字符串的其余部分被解析為十六進(jìn)制數(shù)。
    • parseInt('0x12', 0) '0x' 開頭解析成 16 進(jìn)制,1 * 16^1^ + 2 * 16^0^ = 18
  • 如果輸入的 string以 "0"(0)開頭, radix被假定為8(八進(jìn)制)或10(十進(jìn)制)。具體選擇哪一個(gè)radix取決于實(shí)現(xiàn)。ECMAScript 5 澄清了應(yīng)該使用 10 (十進(jìn)制),但不是所有的瀏覽器都支持。因此,在使用 parseInt 時(shí),一定要指定一個(gè) radix。
    • parseInt('015', 0) chrom Edge 都默認(rèn)為(十進(jìn)制)
  • 如果輸入的 string 以任何其他值開頭, radix 是 10 (十進(jìn)制)。
    • parseInt('512a', 0) 512
  • 如果第一個(gè)字符不能轉(zhuǎn)換為數(shù)字,parseInt會(huì)返回 NaN
    • parseInt('u512a', 0) NaN

考點(diǎn)

[1, 2, 3].forEach((item, index) => console.log(parseInt(item, index)))


第一次循環(huán): parseInt(1, 0) // 在谷歌中進(jìn)制位傳 0 默認(rèn)十進(jìn)制 所以結(jié)果為 1
第二次循環(huán): parseInt(2, 1) // 進(jìn)制位傳 1 時(shí),所以返回 NaN
第三次循環(huán): parseInt(3, 2) // 因?yàn)槎M(jìn)制只有 0、1 ,所以返回 NaN

【筆記不易,如對(duì)您有幫助,請(qǐng)點(diǎn)贊,謝謝】

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容