地图考试真题
很明显,这个题目有两个JavaScript方法,一个是Array.prototype.map,一个是parseInt()。
首先是Array.prototype.map方法,这是ES5给出的数组实例的方法。给map传一个回调函数,map会遍历数组,把相关信息一起传入回调函数,检索回调函数的返回值作为新数组的对应索引元素,返回新数组。
回调函数一次可以得到三个值——(1)数组元素(2)索引值(3)数组本身。
注意:传递给map()的函数调用方式与传递给forEach()的函数相同,但是传递给map()的函数应该有返回值。Map()返回一个新数组,它不修改调用数组。如果调用数组是稀疏的,那么返回的数组也是稀疏的——具有相同的长度和相同的缺失元素。
Array.prototype.map方法的基础实现
ParseInt函数用于将第一个字符串转换成数字,它接受两个参数。第一个参数是我们需要转换的字符串,第二个参数是可选的,表示字符串的基数,即参数表示我们需要通过几个十进制来转换字符串,比如2,表示字符串用二进制表示。如果我们省略第二个参数,当字符串以0x或0X开头时,将被视为十六进制,否则将被视为十进制。
特例:parseInt的第二个参数为0时,表示第二个参数没有传递,字符串会被当作十进制,这也是最常见的情况。
此外,当字符串的第一个非空格字符无法转换为数字时,也会返回NaN。
以下是一些例子:
[1,2,3].map的parse int(parse int)得到了map作为回调函数提供的三个参数。得益于JavaScript是弱类型语言,如果传递的参数个数不匹配,它不会给出错误,只会丢弃不用的参数,将缺失的参数设置为未定义。
ParseInt在这里只使用了两个参数,即数组元素和索引值。
事实上,我们可以将话题扩展成以下功能:
如此清楚,我们很容易得到以下结果:
所以最后我们得到返回结果:[1,NaN,NaN]