javascript 数组中每个元素的类型可不可以不同?

JavaScript016

javascript 数组中每个元素的类型可不可以不同?,第1张

不同基本类型的话是可以的,js本身就是一种弱类型语言

上面的a[0~2]没问题,不过函数和对象没试过,所以写了个代码测试了下,发现只要使用方式正确,也是可以的:

<script>

function a() { // 函数

alert(3)

}

function b(a, b) { // 对象

this.a = athis.b = b

this.f = function() {alert(a+b)}

}

var x = [1,a,new b(3,4)]

x[1]()

x[2].f()

</script>

常规数组: 数组元素内容是一种类型的元素,如const arr = [1,2,3,4],在存储空间是连续内存的

JS数组: 数组元素内容不是同一种类型的元素,如const arr = ['haha', 1, {a:1}],则在存储上是一段非连续空间。此时,JS 数组不再具有数组的特征,其底层其实是由链表来实现的

总结

链表的插入/删除效率较高,而访问效率较低;

数组的访问效率较高,而插入效率较低