深入理解JS中Number(),parseInt(),parseFloat()三者比較
參考閱讀:
詳解js中Number()、parseInt()和parseFloat()的區(qū)別
詳解JS轉(zhuǎn)換數(shù)值函數(shù)Number()、parseInt()、parseFloat()
在項(xiàng)目開發(fā)中我們經(jīng)常會(huì)用到轉(zhuǎn)型方法,尤其是JS這種松散型的語言。其中比較常用的方法就是Number()方法和ParseInt()/ParseFloat()方法了,下面我們分別對(duì)這幾種方法的轉(zhuǎn)型機(jī)制進(jìn)行詳細(xì)地說明。具體內(nèi)容詳情如下所示:
【正文內(nèi)容】
Number()
-------------------------------------------------------------------------------------
--Number()
--
--
--Boolean值,true和false值將分別被轉(zhuǎn)為1和0。
--
--數(shù)字值,整型就是整型,浮點(diǎn)型就是浮點(diǎn)型,科學(xué)計(jì)數(shù)就科學(xué)計(jì)數(shù)
--
--null值,轉(zhuǎn)為0
--
--二進(jìn)制,八進(jìn)制,十六進(jìn)制格式,轉(zhuǎn)為十進(jìn)制的數(shù)值
--
--字符串為空,轉(zhuǎn)為0
--
--字符串中是純科學(xué)計(jì)數(shù),數(shù)值會(huì)直接轉(zhuǎn)為十進(jìn)制的數(shù)值
--
--undefined , 對(duì)象 , 數(shù)組 ,字符串不為純數(shù)字和科學(xué)計(jì)數(shù)時(shí) 返回NaN
------------------------------------------------------------------------------------
//JS區(qū)分0和-0 var num = 123; var num = 123.123; var num = 0b10; var num = 010; var num = 0xff; var num = 5e2; var num = 5e-2; var num = NaN; console.log('值: ' , num); console.log('類型: ' , typeof(num)) //NaN本身為false //其他類型轉(zhuǎn)為數(shù)值失敗時(shí)都為NaN console.log(NaN - 100); if(NaN){ console.log('Yes'); }else{ console.log('No'); } //NaN var a = '123ad'; //123 var a = '123'; //NaN var a = 'f3ad'; //0 var a = false; //1 var a = true; //NaN var a = undefined; var a = new Object(); var a = Array(1,23); //1e+124 var a = 10e123; //3 var a = 0b11; //255 var a = 0xff; //1.23 var a = 1.23; //0 var a = ''; //1200 var a = '12e2'; //0 var a = null; //90 var a = 0132; var n = Number(a); console.log(n);
parseInt()
----------------------------------------------------------------------------------------------------------------------------------------
--parseInt()
--
--
--數(shù)值正常轉(zhuǎn)化,如果為浮點(diǎn)數(shù),則轉(zhuǎn)為整型,舍棄小數(shù)點(diǎn)后的數(shù)值
--
--字符串起始包含數(shù)字時(shí)則數(shù)字那段轉(zhuǎn)為數(shù)值,后面舍棄
--
--二進(jìn)制,八進(jìn)制,十六進(jìn)制轉(zhuǎn)化時(shí),轉(zhuǎn)化為十進(jìn)制的數(shù)值
--
--科學(xué)計(jì)數(shù)法,能解析時(shí)正常解析,不能時(shí)返回第一個(gè)數(shù)字
--
--Boolean,undefined , 對(duì)象 , 數(shù)組 ,空字符串,字符串開頭不為純數(shù)字和科學(xué)計(jì)數(shù)時(shí) 返回NaN
--
--parseInt()方法還有基模式,可以把二進(jìn)制、八進(jìn)制、十六進(jìn)制或其他任何進(jìn)制的字符串轉(zhuǎn)換成整數(shù)。
----------------------------------------------------------------------------------------------------------------------------------------
//123 var a = '123ad'; //123 var a = '123'; //NaN var a = 'f3ad'; //NaN var a = false; //NaN var a = true; //NaN var a = undefined; var a = new Object(); //13 第一個(gè)值 var a = Array(13,2); //3100000能夠解析處時(shí)正常解析,不能時(shí)只返回第一個(gè)數(shù)字 var a = 31e5; //3 var a = 0b11; //255 var a = 0xff; //1 var a = 1.23; //NaN var a = ''; //12 字符串只返回12e舍棄 var a = '12e2'; //NaN var a = null; //1 var a = 1.5; //90 var a = 0132; var n = parseInt(a); console.log(n); var a = parseInt("10",2); var a = parseInt("FF",16); var a = parseInt("10",8); console.log(a);
parseFloat()
--------------------------------------------------------------------------------------------------------------------------------
--parseFloat()
--
--
--數(shù)值正常轉(zhuǎn)化,整型為整型,浮點(diǎn)型為浮點(diǎn)型
--
--字符串起始包含數(shù)字時(shí)則數(shù)字那段轉(zhuǎn)為數(shù)值,后面舍棄
--
--二進(jìn)制,八進(jìn)制,十六進(jìn)制轉(zhuǎn)化時(shí),轉(zhuǎn)化為十進(jìn)制的數(shù)值
--
--科學(xué)計(jì)數(shù)法,能解析時(shí)正常解析,超出范圍則返回Infinity
--
--Boolean,undefined , 對(duì)象 , 數(shù)組 ,空字符串,字符串開頭不為純數(shù)字和科學(xué)計(jì)數(shù)時(shí) 返回NaN
--
--不能有多個(gè)小數(shù)點(diǎn)報(bào)語法錯(cuò)誤
--------------------------------------------------------------------------------------------------------------------------------
//123 var a = '123ad'; //123 var a = '123'; //NaN var a = 'f3ad'; //NaN var a = false; //NaN var a = true; //NaN var a = undefined; var a = new Object(); //13 第一個(gè)值 var a = Array(13,2); //3100000 范圍過大將轉(zhuǎn)為科學(xué)計(jì)數(shù)法再大將為Infinity var a = 31e5; //3 var a = 0b11; //255 var a = 0xff; //1.23 var a = 1.23; //NaN var a = ''; //1200 var a = '12e2aa'; //NaN var a = null; //1.5 var a = 1.5; //90 var a = 0132; // var a = 1.113; var n = parseFloat(a); console.log(n);
總結(jié)
以上所述是小編給大家介紹的深入理解JS中Number(),parseInt(),parseFloat()三者比較,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
js中如何把字符串轉(zhuǎn)化為對(duì)象、數(shù)組示例代碼
在本文為大家介紹下把字符串轉(zhuǎn)化為對(duì)象:把文本轉(zhuǎn)化為對(duì)象、把文本轉(zhuǎn)化為數(shù)組,具體實(shí)現(xiàn)如下,感興趣的朋友可以參考下哈,希望對(duì)大家有所幫助2013-07-07js實(shí)現(xiàn)axios限制請(qǐng)求隊(duì)列
本文主要介紹了js實(shí)現(xiàn)axios限制請(qǐng)求隊(duì)列,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-07-07JavaScript降低代碼圈復(fù)雜度優(yōu)化技巧
當(dāng)一個(gè)項(xiàng)目經(jīng)過持續(xù)迭代,不斷增加功能,逐漸變成一個(gè)復(fù)雜的產(chǎn)品時(shí),新功能的開發(fā)變得相對(duì)困難,其中一個(gè)很大的原因是代碼復(fù)雜度高,導(dǎo)致可維護(hù)性和可讀性都很差,本文將從前端JavaScript的角度出發(fā),介紹一些有效的方法和技巧來優(yōu)化前端代碼的圈復(fù)雜度2023-10-10JS實(shí)現(xiàn)超簡(jiǎn)單的鼠標(biāo)拖動(dòng)效果
這篇文章主要介紹了JS實(shí)現(xiàn)超簡(jiǎn)單的鼠標(biāo)拖動(dòng)效果,涉及JavaScript響應(yīng)鼠標(biāo)事件動(dòng)態(tài)操作頁面元素的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-11-11微信小程序—setTimeOut定時(shí)器的問題及解決
這篇文章主要介紹了微信小程序—setTimeOut定時(shí)器的問題及解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07Js中FileReader讀取文件內(nèi)容方法詳解(async/await)
這篇文章主要給大家介紹了關(guān)于Js中FileReader讀取文件內(nèi)容(async/await)的相關(guān)資料,FileReader是前端進(jìn)行文件處理的一個(gè)重要的Api,特別是在對(duì)圖片的處理上,如果你想知道圖片的處理原理,你就永遠(yuǎn)不可能繞過它,需要的朋友可以參考下2023-11-11[js高手之路]從原型鏈開始圖解繼承到組合繼承的產(chǎn)生詳解
下面小編就為大家?guī)硪黄猍js高手之路]從原型鏈開始圖解繼承到組合繼承的產(chǎn)生詳解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-08-08