猿问

js Array问题

题目描述

区分 new Array(5) vs new Array(5).fill() vs Array.apply(null,{length:5})的区别。。

题目来源及自己的思路

有点搞不清这几个的区别,恳请指教,谢谢

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

你期待的结果是什么?实际看到的错误信息又是什么?


临摹微笑
浏览 533回答 2
2回答

猛跑小猪

new Array(arrayLength)此时将返回一个 length 的值等于 arrayLength 的数组对象(言外之意就是该数组此时并没有包含任何实际的元素,不能理所当然地认为它包含 arrayLength 个值为 undefined 的元素)在 Chrome Dev Tools 的 Console 中可以看到 new Array(5) 打印结果是:[empty × 5],empty 表示没有包含任何实际的元素,使用 map 之类的数组方法迭代访问,即new Array(5).map(item => console.log(item)); // 不会打印出任何值Array.prototype.fillfill() 方法用一个固定值填充一个数组中从起始索引到终止索引内的全部元素。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]
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答