摘要:下面看一下提供的種常見(jiàn)的轉(zhuǎn)數(shù)字的方法。一數(shù)字正常轉(zhuǎn)換,可處理十進(jìn)制,二進(jìn)制,八進(jìn)制和十六進(jìn)制。也是一直解析到字符串末尾,或者解析到遇見(jiàn)一個(gè)無(wú)效的浮點(diǎn)數(shù)字字符為止。處理浮點(diǎn)數(shù)會(huì)取整不會(huì)。
js中轉(zhuǎn)數(shù)字的方法有哪些?我經(jīng)常會(huì)用字符串*1,但是如果碰到一些特殊的情況,使用這種方式會(huì)帶來(lái)不必要的麻煩。下面看一下js提供的3種常見(jiàn)的轉(zhuǎn)數(shù)字的方法。
一、 Number()1.數(shù)字正常轉(zhuǎn)換,可處理十進(jìn)制,二進(jìn)制,八進(jìn)制和十六進(jìn)制。
Number(0000012323) //5331 Number(0xf) //15 Number(001) //1 Number(1.1) //1.1 Number(0.11) //0.11 浮點(diǎn)數(shù)也正常轉(zhuǎn)換 Number(00.11) //報(bào)錯(cuò)
2.布爾值;其他類(lèi)型
Number(false) //0 Number(true) //1 Number() // 0 //空返回0 Number("") //0 Number(null) //0 Number(undefined) //NaN
3.字符串
Number("0xf") //15 //1.十六進(jìn)制格式,如“0xf”,將其轉(zhuǎn)換為相同大小的十進(jìn)制數(shù)值 Number("0000012323") //12323 //2.前導(dǎo)0會(huì)被忽略 Number("0.11") //0.11 Number("00.11") //0.11 //3.浮點(diǎn)數(shù)會(huì)正常轉(zhuǎn)換,并忽略前導(dǎo)0 Number("1b1")//NaN//4.其他情況字符串都返回NaN
4.對(duì)象:會(huì)先調(diào)用valueOf()和toString()方法
Number({a:1}) //NaN === Number("[object Object]") Number([1]) //1 ===Number("1") Number([1,2]) //NaN === Number("1,2")二、parseInt(num,type)
parseInt有2個(gè)參數(shù),第二個(gè)參數(shù)表示轉(zhuǎn)換數(shù)字想要的進(jìn)制。進(jìn)行轉(zhuǎn)換時(shí)會(huì)取整。
1.數(shù)字轉(zhuǎn)換,將浮點(diǎn)數(shù)轉(zhuǎn)成整數(shù)
parseInt(10); parseInt(10.1) //10 parseInt(10.1,2) //2 parseInt(0.23) //0 parseInt(10.111.1,10) //報(bào)錯(cuò):missing ) after argument list parseInt(0010.111,10) //報(bào)錯(cuò):missing ) after argument list
2.布爾值;其他類(lèi)型
parseInt(false) //NaN parseInt(null) // NaN parseInt(undefined) //NaN parseInt() //NaN parseInt("") //NaN
3.字符串:字符串開(kāi)頭如果不是正、負(fù)、數(shù)字返回NaN;遇到非數(shù)字或結(jié)尾停止解析
parseInt("-1") //-1 parseInt("+1") //1 parseInt("a1") //NaN parseInt("12a") //12 parseInt("12,a") //12 parseInt("012,a") //12 parseInt("0.12,a") //0 parseInt("0000.12,a") //0
4.對(duì)象:會(huì)先調(diào)用valueOf()和toString()方法,然后按字符串處理
parseInt({a:1}) // NaN === parseInt("[object Object]") parseInt([1,1.2],2) // 1 === parseInt("1,1.2",2) parseInt([10,1.2],2) //2 === parseInt("10,1.2",2)三、parseFloat()
與parseInt() 函數(shù)類(lèi)似,parseFloat() 也是從第一個(gè)字符(位置0)開(kāi)始解析每一個(gè)字符。也是一直解析到字符串末尾,或者解析到遇見(jiàn)一個(gè)無(wú)效的浮點(diǎn)數(shù)字字符為止。
parseFloat() 只解析十進(jìn)制,因此它沒(méi)有第二個(gè)參數(shù)指定基數(shù)的用法
1.數(shù)字
parseFloat(0.2222) //0.2222 parseInt(0xf,10) //15
2.布爾;其他類(lèi)型
parseFloat() //NaN parseFloat("") //NaN parseFloat(false) //NaN parseFloat(null) //NaN parseFloat(undefined)//NaN
3.字符串
parseFloat("00.123") //0.123 parseFloat("00.123aa") //0.123 //只會(huì)取到非數(shù)字前一位 parseFloat("-0.123aa") //-0.123 parseFloat("-123.1.3") //-123.1//遇到第二個(gè)小數(shù)點(diǎn)當(dāng)非數(shù)字處理 parseFloat("-1.0") //-1小數(shù)點(diǎn)后為0時(shí)返回整數(shù)
4.對(duì)象:同上
parseFloat([1.33,1.2]) //1.33 parseFloat({a:1}) //NaN四、區(qū)別
Number()、parseInt()、parseFloat()區(qū)別總結(jié)起來(lái)就是:
1.參數(shù)上:Number()、parseFloat都只有一個(gè)數(shù)據(jù)源參數(shù);()parseInt()多一個(gè)進(jìn)制處理的參數(shù)。
2.處理浮點(diǎn)數(shù):parseInt()會(huì)取整;Number()、parseFloat()不會(huì)。
3.處理機(jī)制:Number處理數(shù)據(jù)時(shí)發(fā)現(xiàn)非數(shù)字(不包括正、負(fù)號(hào))就會(huì)返回NaN;parseInt只要在數(shù)據(jù)開(kāi)頭發(fā)現(xiàn)數(shù)字就不會(huì)返回NaN。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/106543.html
摘要:隱式類(lèi)型轉(zhuǎn)換與顯示類(lèi)型轉(zhuǎn)換不是官方給的內(nèi)容隱式類(lèi)型轉(zhuǎn)換轉(zhuǎn)換為類(lèi)型類(lèi)型轉(zhuǎn)換后內(nèi)容不變用法單引或雙引代碼示例圖定義類(lèi)型類(lèi)型和類(lèi)型的變量一花一世界控制臺(tái)示例圖轉(zhuǎn)換為類(lèi)型用法其他類(lèi)型類(lèi)型轉(zhuǎn)換為類(lèi)型如果文本內(nèi)容是普通的文本非數(shù)字轉(zhuǎn)換后的結(jié)果 隱式類(lèi)型轉(zhuǎn)換與顯示類(lèi)型轉(zhuǎn)換 - (不是官方給的內(nèi)容) 隱式類(lèi)型轉(zhuǎn)換 1.轉(zhuǎn)換為string類(lèi)型 - 類(lèi)型轉(zhuǎn)換后內(nèi)容不變 - 用法: + (單引)或 (雙引)...
摘要:函數(shù)在轉(zhuǎn)換字符串時(shí),更多的是看其是否符合數(shù)值模式。例如,會(huì)被轉(zhuǎn)換為,因?yàn)闀?huì)被完全忽略。類(lèi)似地,會(huì)被轉(zhuǎn)換為,因?yàn)樾?shù)點(diǎn)并不是有效的數(shù)字字符。指定基數(shù)會(huì)影響到轉(zhuǎn)換的輸出結(jié)果。舉例來(lái)說(shuō),將會(huì)被轉(zhuǎn)換為。但十六進(jìn)制格式的字符串則始終會(huì)被轉(zhuǎn)換成。 以下三個(gè)函數(shù)將非數(shù)值轉(zhuǎn)換為數(shù)值:Number() 、parseInt()和 parseFloat() Number()的轉(zhuǎn)換規(guī)則 Boolean值 ...
摘要:元素是通過(guò)指定的分隔符進(jìn)行分隔的。返回值一個(gè)字符串?dāng)?shù)組,執(zhí)行的操作與執(zhí)行的操作是相反的。返回值與沒(méi)有參數(shù)的方法返回的字符串相同。 1.javascript刪除元素節(jié)點(diǎn) IE中有這樣一個(gè)方法:removeNode(),這個(gè)方法在IE下是好使的,但是在Firefox等標(biāo)準(zhǔn)瀏覽器中就會(huì)報(bào)錯(cuò)了 removeNode is not defined,但是在核心JS中有一個(gè)操作DOM節(jié)點(diǎn)的方法叫:r...
摘要:元素是通過(guò)指定的分隔符進(jìn)行分隔的。返回值一個(gè)字符串?dāng)?shù)組,執(zhí)行的操作與執(zhí)行的操作是相反的。返回值與沒(méi)有參數(shù)的方法返回的字符串相同。 1.javascript刪除元素節(jié)點(diǎn) IE中有這樣一個(gè)方法:removeNode(),這個(gè)方法在IE下是好使的,但是在Firefox等標(biāo)準(zhǔn)瀏覽器中就會(huì)報(bào)錯(cuò)了 removeNode is not defined,但是在核心JS中有一個(gè)操作DOM節(jié)點(diǎn)的方法叫:r...
摘要:如類(lèi)型除了可以以十進(jìn)制表示之外,整數(shù)還可以通過(guò)八進(jìn)制或者十六進(jìn)制的字面值來(lái)表示,其中八進(jìn)制字面值的第一位必須是,然后是八進(jìn)制數(shù)字序列。 Javascript 數(shù)據(jù)類(lèi)型 ECMAscript 中有5種簡(jiǎn)單的數(shù)據(jù)類(lèi)型,也被稱為基本數(shù)據(jù)類(lèi)型:Undefined、Null、Boolean、Number和String。還有一種復(fù)雜的數(shù)據(jù)類(lèi)型——Object。 Undefined 類(lèi)型 在使用va...
閱讀 2384·2021-11-24 09:38
閱讀 3428·2021-11-22 14:44
閱讀 1218·2021-07-29 13:48
閱讀 2683·2019-08-29 13:20
閱讀 1176·2019-08-29 11:08
閱讀 2150·2019-08-26 10:58
閱讀 1318·2019-08-26 10:55
閱讀 3213·2019-08-26 10:39