深入理解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

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

//其他类型转为数值失败时都为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()

--

--

--数值正常转化,如果为浮点数,则转为整型,舍弃小数点后的数值

--

--字符串起始包含数字时则数字那段转为数值,后面舍弃

--

--二进制,八进制,十六进制转化时,转化为十进制的数值

--

--科学计数法,能解析时正常解析,不能时返回第一个数字

--

--Boolean,undefined , 对象 , 数组 ,空字符串,字符串开头不为纯数字和科学计数时 返回NaN

--

--parseInt()方法还有基模式,可以把二进制、八进制、十六进制或其他任何进制的字符串转换成整数。

----------------------------------------------------------------------------------------------------------------------------------------       

//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能够解析处时正常解析,不能时只返回第一个数字

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()

--

--

--数值正常转化,整型为整型,浮点型为浮点型

--

--字符串起始包含数字时则数字那段转为数值,后面舍弃

--

--二进制,八进制,十六进制转化时,转化为十进制的数值

--

--科学计数法,能解析时正常解析,超出范围则返回Infinity

--

--Boolean,undefined , 对象 , 数组 ,空字符串,字符串开头不为纯数字和科学计数时 返回NaN

--

--不能有多个小数点报语法错误

--------------------------------------------------------------------------------------------------------------------------------       

//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 范围过大将转为科学计数法再大将为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);

总结

以上所述是小编给大家介绍的深入理解JS中Number(),parseInt(),parseFloat()三者比较,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

以上是 深入理解JS中Number(),parseInt(),parseFloat()三者比较 的全部内容, 来源链接: utcz.com/z/348179.html

回到顶部