let divs = document.getElementsByTagName("div")
console.log(divs) //HTMLCollection
let divs2 = document.getElementsByClassName("div")
console.log(divs2) //HTMLCollection
let divs3 = document.querySelectorAll(".div")
console.log(divs3) // NodeList
console.log(divs3.length)
console.log(divs instanceof Array) //false 不是一个真正意义上的数组,但是有数组的长度,没有数组的方法
console.log(divs instanceof Object)
let arr = Array.prototype.slice.call(divs) //ES5把一个伪数组转换为一个数组
let arr1 = Array.from(divs) //ES6把一个伪数组转换为一个数组
arr.push("2");
arr1.push("严钢");
console.log(arr)
console.log(arr1)
function foo() {
console.log(arguments) //arguments也是一个伪数组
console.log(arguments instanceof Array)
}
foo(1, "imooc", true)
let arrayLike = {
0:"es5",
1:"es6",
2:"es7",
length: 3
}
let arr3 = Array.from(arrayLike)
arr3.push("ES9")
console.log(arr3)
let arr4 = new Array(3) //当传入一个参数的时候,就是一个数组的长度
console.log(arr4)
let arr5 = Array.of("1sss","adad")
console.log(...arr5)
let arr7 = [1, 2, 3, 4, 5, 6]
//let arr6 = arr7.copyWithin(0, 1, 2) //替换值,第一个参数是开始替换的参数起始位置,第二个参数是替换的参数,第三个参数是结束的参数,改变原数组
let arr8 = Array(3).fill(7)
console.log(arr8)
let arr9 = arr7.fill("Y", 1, 4) // 也会修改原数组值
console.log(arr7) //[2, "Y", "Y", "Y", 5, 6]
let arr10 = [1, 2, 3, NaN];
console.log(arr10.indexOf(2)) //1
console.log(arr10.indexOf(NaN)) //-1
console.log(arr10.includes(NaN)) // true
一起设计吧