深入理解JS中Number(),parseInt(),parseFloat()三者比較
參考閱讀:
詳解js中Number()、parseInt()和parseFloat()的區(qū)別
詳解JS轉(zhuǎn)換數(shù)值函數(shù)Number()、parseInt()、parseFloat()
在項目開發(fā)中我們經(jīng)常會用到轉(zhuǎn)型方法,尤其是JS這種松散型的語言。其中比較常用的方法就是Number()方法和ParseInt()/ParseFloat()方法了,下面我們分別對這幾種方法的轉(zhuǎn)型機制進行詳細地說明。具體內(nèi)容詳情如下所示:
【正文內(nèi)容】
Number()
-------------------------------------------------------------------------------------
--Number()
--
--
--Boolean值,true和false值將分別被轉(zhuǎn)為1和0。
--
--數(shù)字值,整型就是整型,浮點型就是浮點型,科學(xué)計數(shù)就科學(xué)計數(shù)
--
--null值,轉(zhuǎn)為0
--
--二進制,八進制,十六進制格式,轉(zhuǎn)為十進制的數(shù)值
--
--字符串為空,轉(zhuǎn)為0
--
--字符串中是純科學(xué)計數(shù),數(shù)值會直接轉(zhuǎn)為十進制的數(shù)值
--
--undefined , 對象 , 數(shù)組 ,字符串不為純數(shù)字和科學(xué)計數(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ù)值失敗時都為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)化,如果為浮點數(shù),則轉(zhuǎn)為整型,舍棄小數(shù)點后的數(shù)值
--
--字符串起始包含數(shù)字時則數(shù)字那段轉(zhuǎn)為數(shù)值,后面舍棄
--
--二進制,八進制,十六進制轉(zhuǎn)化時,轉(zhuǎn)化為十進制的數(shù)值
--
--科學(xué)計數(shù)法,能解析時正常解析,不能時返回第一個數(shù)字
--
--Boolean,undefined , 對象 , 數(shù)組 ,空字符串,字符串開頭不為純數(shù)字和科學(xué)計數(shù)時 返回NaN
--
--parseInt()方法還有基模式,可以把二進制、八進制、十六進制或其他任何進制的字符串轉(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 第一個值
var a = Array(13,2);
//3100000能夠解析處時正常解析,不能時只返回第一個數(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)化,整型為整型,浮點型為浮點型
--
--字符串起始包含數(shù)字時則數(shù)字那段轉(zhuǎn)為數(shù)值,后面舍棄
--
--二進制,八進制,十六進制轉(zhuǎn)化時,轉(zhuǎn)化為十進制的數(shù)值
--
--科學(xué)計數(shù)法,能解析時正常解析,超出范圍則返回Infinity
--
--Boolean,undefined , 對象 , 數(shù)組 ,空字符串,字符串開頭不為純數(shù)字和科學(xué)計數(shù)時 返回NaN
--
--不能有多個小數(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 第一個值 var a = Array(13,2); //3100000 范圍過大將轉(zhuǎn)為科學(xué)計數(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()三者比較,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
javascript 使用正則test( )第一次是 true,第二次是false
這篇文章主要介紹了使用正則test( )第一次是 true,第二次是false的相關(guān)資料,需要的朋友可以參考下2017-02-02
ES6新特性之類(Class)和繼承(Extends)相關(guān)概念與用法分析
這篇文章主要介紹了ES6新特性之類(Class)和繼承(Extends)相關(guān)概念與用法,結(jié)合實例形式較為詳細的分析了ES6中類(Class)和繼承(Extends)的基本概念、語法、使用方法與注意事項,需要的朋友可以參考下2017-05-05

