ECMAScript中数值转换操作

在ECMAScript中经常会遇见一些数值上的转换,ECMAScript提供了三个函数来进行把非数值转换为数值的操作,分别为:Number(),parseInt(),parseFloat()。

Number()

Number()属于通用型转换函数,它可以对任何的类型进行转换。Number()转换的规则如下:

如果是boolean值,true转换为1,false转换为0 如果是数值,那么将不会进行任何的转换操作,将把原文返回 如果是null,返回0

如果是对象,首先调用对象的valueOf()方法,然后把返回的值依照其他规则进行转换,如果没有返回能够转换的值,那么继续将这个返回的值以toString()方法返回一个字符串,再依照其他规则进行转换。如果还是不能转换则返回NaN

如果是undefined,返回NaN。 如果是字符串,将会采取一些特殊的转换规则 如果字符串只包含了数字,那么将把字符串转换为十进制数值并返回。但是会忽略前面的0 如果字符串中包含了浮点数字,那么把字符串转换为浮点数值 如果字符串中包含以十六进制标志(0x)开头的数值,那么返回相应大小的十进制数值 如果是空字符串,返回0

parseInt()

parseInt()函数只针对字符串进行转换的函数,parseInt()在转换前会对字符串的前后空格都进行忽略,parseInt()的转换规则为:

从第一个有效字符开始逐步检查看是否为正负号以及数字,一直到无法转换为数值的字符停止。 如果转换的字符串为空,那么返回NaN 除此之外parseInt函数还支持设定解析的字符串的数值格式,如果你知道字符串的数值格式,那么可以在第二个参数指定数值格式,如果指定格式无法解析,将返回NaN: 十进制:parseInt(“76″,10) 八进制:parseInt(“76″,8) 十六进制:parseInt(“FF”,16)

parseFloat()

parseFloat()函数只针对字符串进行转换的函数,parseFloat()在转换前会对字符串的前后空格都进行忽略,parseFloat()的转换规则为:

从第一个有效字符开始逐步检查看是否为正负号以及数字,一直到无法转换为数值的字符停止。 只截取第一个小数点以及后面的数值,之后的小数点以及之后的小数点(包含之后的数值)将忽略。 如果转换的字符串为空,那么返回NaN

你可能感兴趣的:(ECMAScript)