javascript字符串轉(zhuǎn)為數(shù)字

字符串轉(zhuǎn)為數(shù)字

前言面試有點(diǎn)小尷尬(1)

一、parseInt() 和 Number.parseInt()

規(guī)則
1.忽略字符串前面的空格,直至找到第一個(gè)非空字符
2.如果第一個(gè)非空字符不是數(shù)字或者是正負(fù)號(hào)則返回NaN
3.如果第一個(gè)是數(shù)字字符一直解析到一個(gè)非數(shù)字字符
4.如果第一個(gè)是數(shù)字字符,能識(shí)別出各種整數(shù)格式
5.接受第二個(gè)參數(shù),即轉(zhuǎn)換時(shí)使用的基數(shù)
6.小數(shù)向下取整

Number.parseInt('   123') // 123
Number.parseInt(' ab123') // NaN
Number.parseInt('') // NaN
Number.parseInt(' 31avs') // 31
Number.parseInt('0xf') // 15
Number.parseInt("070") // es3->56 es5->70
Number.parseInt('A', 16) // 10
Number.parseInt('A') // NaN
Number.parseInt('58.2') // 58

二、parseFloat() 和 Number.parseFloat()

規(guī)則
1.忽略字符串前面的空格,直至找到第一個(gè)非空字符
2.如果第一個(gè)非空字符不是數(shù)字或者是正負(fù)號(hào)則返回NaN
3.如果第一個(gè)是數(shù)字字符一直解析到一個(gè)非數(shù)字字符
4.字符串中第一個(gè)小數(shù)點(diǎn)是有效的第二個(gè)小數(shù)點(diǎn)是無(wú)效的
5.只解析10進(jìn)制,不接受第二個(gè)參數(shù)

Number.parseFloat('  123') // 123
Number.parseFloat('  ab123') // NaN
Number.parseFloat('') // NaN
Number.parseFloat('  123.3.4eqw') // 123.3
Number.parseFloat('0xf') // 0

三、Number()

規(guī)則
1.如果是Boolean值,true和false分別返回1或0
2.如果是數(shù)字,只是單純的傳入和返回
3.如果是null,則返回0
4.如果是undefined返回NaN
5.如果是字符串
①如果字符串味空則返回零(忽略前導(dǎo)零)
②如果字符串為整數(shù)則返回整數(shù)(忽略前導(dǎo)零)
③如果字符串為浮點(diǎn)數(shù)則返回浮點(diǎn)數(shù)
④如果字符串為16進(jìn)制,轉(zhuǎn)為10進(jìn)制返回
⑤除以上格式返回NaN
6.如果是對(duì)象,則調(diào)用對(duì)象的valueOf,按照前面的規(guī)則返回值,如果返回NaN,再調(diào)用toString(),按照前面的規(guī)則返回值

Number(true) // 1
Number(false) // 0
Number(null) // 0
Number(undefined) // 0
Number('') // 0
Number('123') // 123
Number('123.12') // 123.12
Number('0xf') // 16

在github上編輯此頁(yè)
博主的個(gè)人博客

最后編輯于
?著作權(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)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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