['1','2','3'].map(parseInt) //[1,NAN,NAN]
面试的朋友可能或多或少都会碰到过 这个问题,在此之前我也和各位小伙伴一样,第一反应会是[1,2,3]。而实际输出 [1,NaN,NaN]
首页我们从代码中剖析,这题无非是考察对map、parseInt的了解。
首先来看看map:
以下从mdn下摘下:
map(callbackFn)
map(callbackFn, thisArg)
callbackFn
为数组中的每个元素执行的函数。它的返回值作为一个元素被添加为新数组中。该函数被调用时将传入以下参数:
element
数组中当前正在处理的元素。
index
正在处理的元素在数组中的索引。
array
调用了
map()
的数组本身。
thisArg
可选执行
callbackFn
时用作this
的值。
由此可知到callbackFn向parseInt传递了三个参数,在循环体中,依次执行:
parseInt('1',0,['1','2','3'])
parseInt('2',1,['1