很久之前写过一篇js常用数组,随着对这门语言的学习,感觉之前写的一些笔记都太浅了.写篇新的巩固一下基础(为什么不在原文修改,因为富文本实在太烦人了!还是MarkDown香)
判断是否为数组的方法?优缺?
-
不能用
typeof
,typeof
只能判断数组为objecet
,不能明确其为Array
; -
不能用
.length
,因为其他诸如函数也有length
属性; -
instanceof
可以判断,instanceof
是通过原型链去判断数据类型的,但是存在框架问题 -
Array.isArray()
可以判断,老版本的浏览器不支持; -
Object.prototype.toString.call()
let arr = [1,2]; Object.prototype.toString.call(arr) === '[object Array]'; // true
JS
中有哪些数组方法
-
创建数组的方法
-
字面量创建:
const arr = [];
-
使用
Array
构造函数:const arr = new Array(); arr[0] = 1; arr[1] = 2; // 一个参数表示创建length为num的数组 const arr = new Array(3) //多个参数表示创建包含这几项的数组 const arr = new Array('red','yellow','blue')
算法题中,常使用
new Array()
来初始化固定length
的数组:const arr = new Array(7); // 表示创建一个长度为7的数组
再者,还可以通过
fill()
方法来初始化数组里面的值:const arr = new Array(7).fill(1); // [1,1,1,1,1,1,1]
需要注意的是
fill()
有它的局限性,当给fill()
传入一个参数时,如果这个参数是引用类型,那么fill()
填充数组时填充的是入参的引用.比如初始化二维数组:const arr = new Array(7).fill([]); // [[],[],[],[],[],[],[]] arr[0][
-