Skip to content

输出是什么?

javascript
[1, 2, 3].map(num => {
  if (typeof num === "number") return;
  return num * 2;
});

A. [] B. [null, null, null] C. [undefined, undefined, undefined] D. [ 3 x empty ]

答案: C

解析:

对数组进行映射的时候,num就是当前循环到的元素. 在这个例子中,所有的映射都是number类型,所以if中的判断typeof num === "number"结果都是true.map函数创建了新数组并且将函数的返回值插入数组。 但是,没有任何值返回。当函数没有返回任何值时,即默认返回undefined.对数组中的每一个元素来说,函数块都得到了这个返回值,所以结果中每一个元素都是undefined.