JavaScript parseInt()與Number()區(qū)別案例詳解
學(xué)習(xí)目標(biāo):
parseInt()、Number()這兩個(gè)函數(shù)用到最多的地方就是把一個(gè)字符串轉(zhuǎn)換成數(shù)據(jù)類型,那么他們都有哪些區(qū)別?
學(xué)習(xí)內(nèi)容:
parseInt()函數(shù)將給定的字符串以指定的基數(shù)解析為整數(shù)。
parseInt(string,radix)
第二個(gè)參數(shù)表示使用的進(jìn)制,我們一般使用10進(jìn)制,也可能會(huì)有到8或者16進(jìn)制。為了避免對(duì)“0”和“0x”開頭的字符串解析錯(cuò)誤,各種javascript編程規(guī)范都規(guī)定必須要明確給出第二個(gè)參數(shù)的值,如parseInt(“123”,10).
parseInt('16', 8) = 14 parseInt('10', 8) = 8 parseInt('16', 10) = 16 parseInt('10', 10) = 10 parseInt('16', 16) = 22 parseInt('10', 16) = 16
parseInt從頭解析string為整數(shù),在遇到不能解析的字符時(shí)就返回已經(jīng)解析的整數(shù)部分,如果第一個(gè)字符就不能解析,就直接返回NaN。
Number()在不用new操作符時(shí),可以用來執(zhí)行類型轉(zhuǎn)換。如果無法轉(zhuǎn)換為數(shù)字,就返回NaN。 像“123a”,parseInt()返回是123,Number()返回是NaN,不同類型的字符串使用這兩個(gè)函數(shù)的轉(zhuǎn)換區(qū)別:
// 當(dāng)字符串是由數(shù)字組成的時(shí)候 他們轉(zhuǎn)換的數(shù)字一樣的沒有差別 let numStr = '123' console.log(parseInt(numStr)) //123 console.log(Number(numStr)) //123 // 當(dāng)字符串是由字母組成的時(shí)候 let numStr = 'abc' console.log(parseInt(numStr)) //NaN console.log(Number(numStr)) //NaN // 當(dāng)字符串是由數(shù)字和字母組成的時(shí)候 let numStr = '123a' console.log(parseInt(numStr)) //123 console.log(Number(numStr)) //NaN // 當(dāng)字符串是由0和數(shù)字 let numStr = '0123' console.log(parseInt(numStr)) //123 console.log(Number(numStr)) //123 // **當(dāng)字符串包含小數(shù)點(diǎn)** let numStr = '123.456' console.log(parseInt(numStr)) //123 console.log(Number(numStr)) //123.456 // **當(dāng)字符串為null時(shí)** let numStr = null console.log(parseInt(numStr)) //NaN console.log(Number(numStr)) //0 // **當(dāng)字符串為''(空)時(shí)** let numStr = '' console.log(parseInt(numStr)) //NaN console.log(Number(numStr)) //0
學(xué)習(xí)總結(jié):
1、當(dāng)字符串是由數(shù)字組成的時(shí)候 他們轉(zhuǎn)換的數(shù)字一樣的沒有差別;如果字符串不含數(shù)字全是字母,這兩個(gè)方法也都只是返回NaN結(jié)果;當(dāng)字符串是由0和數(shù)字組成時(shí),都是解析除0外的全部數(shù)字;
2 當(dāng)字符串是由數(shù)字和字母組成的時(shí)候 ①字母在開頭,這兩個(gè)方法也都只是返回NaN結(jié)果②字母不在開頭Number方法返回NaN,pareseInt方法返回字母之前的數(shù)據(jù)
3 parseInt對(duì)于非String類型的值要先轉(zhuǎn)換為String類型再操作 4 剩下的細(xì)節(jié)參考上述案例
到此這篇關(guān)于JavaScript parseInt()與Number()區(qū)別案例詳解的文章就介紹到這了,更多相關(guān)js parseInt()與Number()區(qū)別內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解在網(wǎng)頁上通過JS實(shí)現(xiàn)文本的語音朗讀
這篇文章主要介紹了在網(wǎng)頁上通過JS實(shí)現(xiàn)文本的語音朗讀,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03簡(jiǎn)略說明Javascript中的= =(等于)與= = =(全等于)區(qū)別
本篇文章簡(jiǎn)略說明了Javascript中的= =(等于)與= = =(全等于)區(qū)別,有需要的朋友可以參考一下2013-04-04Typescript中 type 與 interface 的區(qū)別說明總結(jié)
這篇文章主要介紹了Typescript中 type 與 interface 的區(qū)別說明總結(jié),需要的朋友可以參考下2024-07-07