概述
一、什么是类数组
类数组的定义只存在一条,就是存在length属性。
1、类数组形式
<script>
let divs = document.querySelectorAll("div")
console.log(divs.length) //9
console.log(divs[0]) //<div>1</div>
console.log(divs) //NodeList(9) [div, div, div, div, div, div, div, div, div]
console.log(Array.isArray(divs)) //false
</script>
如图所示就是类数组,存在length属性,也可以通过下标来对元素进行访问,但是当使用Array.isArray()
来访问的时候,显示为false。如果在此时我们通过push方法,则也会报错。此时我们可以借用数组的方法来解决。
let divs = document.querySelector("div")
let newArr = Array.prototype.slice(divs, 0)
console.log(Array.isArray(newArr)) //true
2、类数组对象
<script>
let obj = {
length:2,
0:"我是谁",
1:"i am jack"
}
console.log(obj.length) //2
console.log(Array.isArray(obj)) //false
</script>
这里我们设置一个对象,并且给其增添length属性,此时我们使用Array.isArray来判断是否是数组。我们也可以进行一些转化,使用数组的一些转换,将其转化成数组。
<script>
let obj = {
0:"我是谁",
1:"i am jack",
length:2
}
let newArr = Array.prototype.slice.call(obj,0)
console.log(newArr) // ['我是谁', 'i am jack']
console.log(Array.isArray(newArr)) //true
</script>
3、类数组函数
let func1 = function() {}
console.log(func1.length) //0
let func2 = function(a, b) {}
console.log(func2.length) //2
//此时如果打印出
console.log(Array.prototype.slice.call(func1, 0)) //[]
console.log(Array.prototype.slice.call(func2, 0)) //[空属性 × 2]
最后
以上就是细腻大象为你收集整理的深入理解javascript类数组对象的全部内容,希望文章能够帮你解决深入理解javascript类数组对象所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复