分析一道面试题:array中的空位

以下代码执行后,array 的结果是?

let array = [,1,,2,,3];
array = array.map((i) => ++i)

A:[,2,3,4]
B:[NaN,2,NaN,3,NaN,4]
C:[1,2,1,3,1,4]
D:[null,2,null,3,null,4]
正确答案:A
解析:
在ES5中,forEach(),filter(), reduce(),every()some()都会跳过空位。
map()会跳过空位,但会保留这个值
join()toString()将空位视为undefined,而undefined和null会被处理成空字符串。
而在ES6 中都会将空位当做undefined

你可能感兴趣的:(javascript)