JS中parseInt()和map()用法分析

本文实例讲述了JS中parseInt()和map()用法分享给大家供大家参考,具体如下:

parseInt()的几个例子

rush:js;"> var b = parseInt("01"); alert("b="+b); var c = parseInt("09/08/2009"); alert("c="+c);

结果:b=1,c=0

parseInt()用来解析字符串,返回整数,有几个特点:

1.无视被解析字符串最前和最后的空格,即:" 111 "和"111"是一样的

2.正规格式是

一个参数是被解析的字符串,第二个参数是进制(可不些)

第二个参数的特点:

默认进制(十进制)进行解析

间的整数,如果在这个范围之外,返回NaN

默认解析为8进制。string首字符为0x(0X)则认解析为16进制。其他情况认为10进制。

加上第二个参数,不然即使碰到首字符为0,应该以8进制方式进行,在某些浏览器下,如ff也会按10进制进行

3.解析从第一个可以解析的字符开始,到第一个不能解析的字符(如空格,标点符号等)结束。后面的字符不再解析。如果第一个字符就不可以解析,则返回NaN。

回到此题来分析

b的首字母是0,按8进制解析后面的数值,也就是8进制的1。自然返回值为1。
c的首字母是0,按8进制解析后面的数值,但是第二个字符9已经不是8进制数,也就是9是第一个不能解析的字符,parseInt("09/08/2009")相当于parseInt("0"),自然返回值是0
注:8也不是8进制数,最大到7

变形:

rush:js;"> var c = parseInt("0119/08/2009"); alert("c="+c);

分析:

相当于parseInt("011"),0*8^2+1*8^1+1*8^0=0+8+1=9,输出结果为c=9 parseFloat()和parseInt()

parseInt()可以带参数,指定二进制、八进制或者十六进制(认十进制),而parseFloat()不带参数,不能解析八进制、十六进制数,就只能按十进制进行。

再来看parseInt()和.map()结合的例子

["1","2","3"].map(parseInt) 返回值又是多少呢

map方法

rush:js;"> array1.map(callbackfn[,thisArg])

对数组的每个元素,调用定义的回调函数,返回一个数组包含结果

参数:

一个数组对象函数

即原例子相当于

rush:js;"> [parseInt("1",0),parseInt("2",1),parseInt("3",2)]

分析:

输出1 1不在2~36之间,输出NaN 字符串”3“里面没有合法的二进制数,输出NaN 所以最后结果是[1,NaN,NaN]

更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》、《》及《错误与调试技巧总结》

希望本文所述对大家JavaScript程序设计有所帮助。

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...