题目描述区分 new Array(5) vs new Array(5).fill() vs Array.apply(null,{length:5})的区别。。题目来源及自己的思路有点搞不清这几个的区别,恳请指教,谢谢相关代码// 请把代码文本粘贴到下方(请勿用图片代替代码)你期待的结果是什么?实际看到的错误信息又是什么?
2 回答
猛跑小猪
TA贡献1858条经验 获得超8个赞
此时将返回一个 length 的值等于 arrayLength 的数组对象(言外之意就是该数组此时并没有包含任何实际的元素,不能理所当然地认为它包含 arrayLength 个值为 undefined 的元素)
在 Chrome Dev Tools 的 Console 中可以看到 new Array(5)
打印结果是:[empty × 5]
,empty
表示没有包含任何实际的元素,使用 map
之类的数组方法迭代访问,即
new Array(5).map(item => console.log(item)); // 不会打印出任何值
fill() 方法用一个固定值填充一个数组中从起始索引到终止索引内的全部元素。
new Array(5).fill()
即使用 undefined
填充数组中全部元素,即 [undefined, undefined, undefined, undefined, undefined]
Function.prototype.apply,类数组对象
apply() 方法调用一个具有给定this值的函数,以及作为一个数组(或类似数组对象)提供的参数。
Array.apply(null,{length:5})
即给 Array 传入参数:5个 undefined,结果为 [undefined, undefined, undefined, undefined, undefined]
添加回答
举报
0/150
提交
取消