深入理解JS中Number(),parseInt(),parseFloat()三者比较
参考阅读:
详解js中Number()、parseInt()和parseFloat()的区别
详解JS转换数值函数Number()、parseInt()、parseFloat()
在项目开发中我们经常会用到转型方法,尤其是JS这种松散型的语言。其中比较常用的方法就是Number()方法和ParseInt()/ParseFloat()方法了,下面我们分别对这几种方法的转型机制进行详细地说明。具体内容详情如下所示:
【正文内容】
Number()
-------------------------------------------------------------------------------------
--Number()
--
--
--Boolean值,true和false值将分别被转为1和0。
--
--数字值,整型就是整型,浮点型就是浮点型,科学计数就科学计数
--
--null值,转为0
--
--二进制,八进制,十六进制格式,转为十进制的数值
--
--字符串为空,转为0
--
--字符串中是纯科学计数,数值会直接转为十进制的数值
--
--undefined,对象,数组,字符串不为纯数字和科学计数时返回NaN
------------------------------------------------------------------------------------
//JS区分0和-0
varnum=123;
varnum=123.123;
varnum=0b10;
varnum=010;
varnum=0xff;
varnum=5e2;
varnum=5e-2;
varnum=NaN;
console.log('值:',num);
console.log('类型:',typeof(num))
//NaN本身为false
//其他类型转为数值失败时都为NaN
console.log(NaN-100);
if(NaN){
console.log('Yes');
}else{
console.log('No');
}
//NaN
vara='123ad';
//123
vara='123';
//NaN
vara='f3ad';
//0
vara=false;
//1
vara=true;
//NaN
vara=undefined;
vara=newObject();
vara=Array(1,23);
//1e+124
vara=10e123;
//3
vara=0b11;
//255
vara=0xff;
//1.23
vara=1.23;
//0
vara='';
//1200
vara='12e2';
//0
vara=null;
//90
vara=0132;
varn=Number(a);
console.log(n);
parseInt()
----------------------------------------------------------------------------------------------------------------------------------------
--parseInt()
--
--
--数值正常转化,如果为浮点数,则转为整型,舍弃小数点后的数值
--
--字符串起始包含数字时则数字那段转为数值,后面舍弃
--
--二进制,八进制,十六进制转化时,转化为十进制的数值
--
--科学计数法,能解析时正常解析,不能时返回第一个数字
--
--Boolean,undefined,对象,数组,空字符串,字符串开头不为纯数字和科学计数时返回NaN
--
--parseInt()方法还有基模式,可以把二进制、八进制、十六进制或其他任何进制的字符串转换成整数。
----------------------------------------------------------------------------------------------------------------------------------------
//123
vara='123ad';
//123
vara='123';
//NaN
vara='f3ad';
//NaN
vara=false;
//NaN
vara=true;
//NaN
vara=undefined;
vara=newObject();
//13第一个值
vara=Array(13,2);
//3100000能够解析处时正常解析,不能时只返回第一个数字
vara=31e5;
//3
vara=0b11;
//255
vara=0xff;
//1
vara=1.23;
//NaN
vara='';
//12字符串只返回12e舍弃
vara='12e2';
//NaN
vara=null;
//1
vara=1.5;
//90
vara=0132;
varn=parseInt(a);
console.log(n);
vara=parseInt("10",2);
vara=parseInt("FF",16);
vara=parseInt("10",8);
console.log(a);
parseFloat()
--------------------------------------------------------------------------------------------------------------------------------
--parseFloat()
--
--
--数值正常转化,整型为整型,浮点型为浮点型
--
--字符串起始包含数字时则数字那段转为数值,后面舍弃
--
--二进制,八进制,十六进制转化时,转化为十进制的数值
--
--科学计数法,能解析时正常解析,超出范围则返回Infinity
--
--Boolean,undefined,对象,数组,空字符串,字符串开头不为纯数字和科学计数时返回NaN
--
--不能有多个小数点报语法错误
--------------------------------------------------------------------------------------------------------------------------------
//123 vara='123ad'; //123 vara='123'; //NaN vara='f3ad'; //NaN vara=false; //NaN vara=true; //NaN vara=undefined; vara=newObject(); //13第一个值 vara=Array(13,2); //3100000范围过大将转为科学计数法再大将为Infinity vara=31e5; //3 vara=0b11; //255 vara=0xff; //1.23 vara=1.23; //NaN vara=''; //1200 vara='12e2aa'; //NaN vara=null; //1.5 vara=1.5; //90 vara=0132; // vara=1.113; varn=parseFloat(a); console.log(n);
总结
以上所述是小编给大家介绍的深入理解JS中Number(),parseInt(),parseFloat()三者比较,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!