溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

深入理解JS中Number(),parseInt(),parseFloat()三者比較

發(fā)布時(shí)間:2020-10-04 11:20:30 來(lái)源:腳本之家 閱讀:192 作者:思索 欄目:web開(kāi)發(fā)

參考閱讀:

詳解js中Number()、parseInt()和parseFloat()的區(qū)別

詳解JS轉(zhuǎn)換數(shù)值函數(shù)Number()、parseInt()、parseFloat()

在項(xiàng)目開(kāi)發(fā)中我們經(jīng)常會(huì)用到轉(zhuǎn)型方法,尤其是JS這種松散型的語(yǔ)言。其中比較常用的方法就是Number()方法和ParseInt()/ParseFloat()方法了,下面我們分別對(duì)這幾種方法的轉(zhuǎn)型機(jī)制進(jìn)行詳細(xì)地說(shuō)明。具體內(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('類(lèi)型: ' , typeof(num))
 //NaN本身為false
 //其他類(lèi)型轉(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ù)組 ,空字符串,字符串開(kāi)頭不為純數(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ù)組 ,空字符串,字符串開(kāi)頭不為純數(shù)字和科學(xué)計(jì)數(shù)時(shí) 返回NaN
--
--不能有多個(gè)小數(shù)點(diǎn)報(bào)語(yǔ)法錯(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 范圍過(guò)大將轉(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ì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)億速云網(wǎng)站的支持!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI