十年专注于品牌网站建设 十年专注于品牌网站建设,低调、有情怀的网络应用服务商!
南昌百恒网络微信公众号 扫一扫关注
小程序
tel-icon全国服务热线:400-680-9298,0791-88117053
扫一扫关注百恒网络微信公众号
扫一扫打开百恒网络微信小程序

百恒网络

南昌百恒网络

Number()、parselnt()和parseFloat()的用法及注意事项

百恒网络 2012-02-08 3621

数值转换

有3个函数可以把非数值转换为数值:Number()、parselnt()和parseFloat()。第一个函数,即转型函数Number可莉羽哥手荏-f据类型,而另两个函数则专门用于把字符串转换成数值。这3个函数对于同样的输入会有返回不同的结果。

Number()函数的转换规则如下。

口如果是Boolean值,true和false将分别被转换为1和0;

口如果是数字值,只是简单的传人和返回;

口如果是null值,返回O;

口如果是undefined,返回NaN;

口如果是字符串,遵循下列规则:

如果字符串中只包含数字,则将其转换为十进制数值,即”1”会变成1,”123”会变成123,而”011”会变成11(注意:前导的零被忽略了);

_如果字符串中包含有效的浮点格式,如”1.1",则将其转换为对应的浮点数值(同样,也会忽略前导零);

_如果字符串中包含有效的十六进制格式,例如”Oxf”,则将其转换为相同大小的十进制整数值;

-如果字符串是空的(不包含任何字符),则将其转换为0;

_如果字符串中包含除上述格式之外的字符,则将其转换为NaN。

如果是对象,则调用对象的valueOf()方法,然盾依照前面的规则转换返回的值。如果转换的结果是NaN,则调用对象的toString()方法,然后再次依照前面的规则转换返回的字符串值。

根据这么多的规则使用Number()把各种数据类型转换为数值确实有点复杂。下面还是给出几个具体的例子吧:

var numl=Number( "Hello world!”); //NaN

var num2=Number(””); //0

var num3=Number( "000011");//11

var num4=NLunber(true);

首先,字符串”Hello world!”会被转换为NaN,因为其中不包含任何有意义的数字值。空字符串会被转换为0。字符串”000011”会被转换为11,因为忽略了其前导的零。最后,true值被转换为l。

南昌网络公司百恒网络前端开发工程师认为:由于Number()函数在转换字符串时比较复杂而且不够合理,因此在处理整数的时候更常用的是parselnt()函数。parse工nt()函数在转换字符串时,更多的是看其是否符合数值模式。它会忽略字 符串前面的空格,直至找到第一个非空格字符。如果第一个字符不是数字字符或者负号,parselnt()就会返回NaN;也就是说,用parselnt()转换窒字符串会返回Na可u曲萏耶碉至季符返回o)。如 果第一个字符是数字字符,parselnt()会继续解析第二个字符,直到解析完所有后续字符或者遇到了一个非数字字符。例如,”123 4blue”会被转换为1234,因为”blue”会被完全忽略。类似地,”22.5" 会被转换为22,因为小数点并不是有效的数字字符。

南昌做网站公司百恒网络前端开发工程师总结:如果字符串中的第一个字符是数字字符,parselnt()也能够识别出各种整数格式(即前面讨论的十进制、八进制和十六进制数)。也就是说,如果字符串以”Ox”开头且后跟数字字符,就会将其当 作一个十六进制整数;如果字符串以”o”开头且后跟数字字符,则会将其当作一个八进制数来解析。

为了更好地理解parse工nt()函数的转换规则,下面给出一些例子:

var numl=parselnt( "1234blue”); 11 1234

var num2=parselnt(””) //NaN

希望对广大站长或网站建设公司或从事企业网站建设的团队有所帮助,如对此不太理解的,可以与南昌网络公司百恒网络技术部联系。我们很高与广大站长和网站建设公司技术人员分享我们的技术和经验。


400-680-9298,0791-88117053
扫一扫关注百恒网络微信公众号
扫一扫打开百恒网络小程序

欢迎您的光顾,我们将竭诚为您服务×

售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售后服务 售后服务
 
售后服务 售后服务
 
备案专线 备案专线
 
×