1.parseInt()
用来解析字符串,返回整数,有几个特点:
1、无视被解析字符串最前和最后的空格,即:” 111 “和”111”是一样的
2、正规格式:parseInt(string,radix)
第一个参数是被解析的字符串,第二个参数是进制(可不写)
第二个参数的特点:
1、如果radix省略或为0,则按默认进制(十进制)进行解析
2、radix为2~36之间的整数,如果在这个范围之外,返回NaN
3、string首字符为0x(0X)则默认解析为16进制
4、最好加上第二个参数,不然碰到首字符为0,其会因为浏览器的不同而执行八进制或十进制
注意:解析从第一个可以解析的字符开始,到第一个不能解析的字符(如空格,标点符号,字母等)结束。后面的字符不再解析。如果第一个字符就不可以解析,则返回NaN。
2.parseFloat()和parseInt()
parseInt()可以带参数,指定二进制、八进制或者十六进制(默认十进制),而parseFloat()不带参数,不能解析八进制、十六进制数,就只能按十进制进行。
3.map方法
array1.map(callbackfn[, thisArg])
对数组的每个元素,调用定义的回调函数,返回一个数组包含结果
参数:
array1:必须。一个数组对象
callbackfn:必须。最多接受三个参数(数组元素的值,数组元素的索引,包含该元素的数组对象)的回调函数
thisArg:可选
[“1”, “2”, “3”].map(parseInt)
值为:[1, NaN, NaN]
原因:parseInt接收的是两个参数,map传递的是3个参数。
即[“1”, “2”, “3”].map(parseInt)相当于:
parseInt('1', 0);
parseInt('2', 1);
parseInt('3', 2);
第一行里:’1’按十进制转换输出1;
第二行里:1不在2~36之间,输出NaN;
第三行里:’3’里面没有合法的二进制数,输出NaN;
所以,结果为[1, NaN, NaN]。