数组就是专门存储一组数据的
注意:数组属于引用数据类型
创建数组的所有方式
(1)let 变量名称 = new Array(size); 创建一个指定大小的数组
(2)let 变量名称 = new Array(); 创建一个空
(3)let 变量名称 = new Array( data1,data2,…); 创建一个带数据的
(4)let 变量名称 = [ ]; 创建一个空
(5)let 变量名称 = [data1,data2,… ]; 创建一个空数组
(1)和其它编程语言不同,如果数组对应的索引中没有存储数据,默认存储的是undefined,其他语言中默认保存的是垃圾数据或者是0。
<script>
let arr = new Array("1", "2");
console.log(arr[0]);
console.log(arr[1]);
console.log(arr[2]);
</script>
控制台输出:
2.和其它编程语言不同, JavaScript中访问了数组中不存在的索引不会报错,会返回 undefined
其它编程语言一旦超出索引范围就会报错或者返回脏数据
<script>
let arr = new Array(1);
arr[0] = 1;
console.log(arr[0]);
console.log(arr[1]);
console.log(arr[2]);
</script>
控制台输出:
3.和其它编程语言不同, JavaScript中数组的存储空间不够时数组会自动扩容,其他编程语言中数组的大小是固定的。
<script>
let arr = new Array(1);
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
console.log(arr[0]);
console.log(arr[1]);
console.log(arr[2]);
</script>
控制台输出:
4.和其它编程语言不同,JavaScript的数组可以存储不同类型数据
在其它编程语言中数组只能存储相同类型数据(要么全部都是字符串,要公全部都是数值等)
<script>
let arr = new Array(1);
arr[0] = 1;
arr[1] = "2";
arr[2] = true;
console.log(arr[0]);
console.log(arr[1]);
console.log(arr[2]);
</script>
控制台输出:
5.和其它编程语言不同,JavaScript中数组分配的存储空间不一定是连续/其它语言数组分配的存储空间都是连续的,JavaScript数组是采用“哈希映射方式分配存储空间
什么是哈希映射?好比字典可以通过偏旁部首找到对应汉字,我们可以通过索引找到对应空间