数组
数组就是专门用于存储一组数据的
注意: 和Number/String/Boolean/Null/undefined不同(基本数据类型) , 而数组(Array)不是基本数据类型, 是引用数据类型(对象型)
创建一个数组
let 变量名称 = new Array(size);
操作数据
- 往数组中存储数据
变量名称[索引号] = 需要存储的数据; - 从数组中获取存储的数据
变量名称[索引号];
注意
- 如果数组对应的索引中没有存储数据, ==默认存储的就是undefined ==, 其它编程语言中默认保存的是垃圾数据或者0
let arr = new Array(3);
console.log(arr[0]); // undefined
console.log(arr[1]); // undefined
console.log(arr[2]); // undefined
- JavaScript中访问了数组中不存在的索引不会报错, 会返回undefined , 其它编程语言一旦超出索引范围就会报错或者返回脏数据
let arr = new Array(3); // 0 1 2
console.log(arr[666]); // undefined
- 当JavaScript中数组的存储空间不够时数组会自动扩容 , 其它编程语言中数组的大小是固定的
let arr = new Array(3);
arr[0] = "a";
arr[1] = "b";
arr[2] = "c";
arr[3] = "d";
console.log(arr); // ["a", "b", "c", "d"]
- JavaScript的数组可以存储不同类型数据 , 在其它编程语言中数组只能存储相同类型数据(要么全部都是字符串, 要么全部都是数值等)
let arr = new Array(4);
arr[0] = 123;
arr[1] = "abc";
arr[2] = true;
arr[3] = null;
console.log(arr); // [123, "abc", true, null]
- JavaScript中数组分配的存储空间不一定是连续的 , 其它语言数组分配的存储空间都是连续的, JavaScript数组是采用"哈希映射"(好比字典可以通过偏旁部首找到对应汉字, 我们可以通过索引找到
对应空间)方式分配存储空间- 在浏览器中各大浏览器也对数组分配存储空间进行了优化
- 如果存储的都是相同类型的数据, 那么会尽量分配连续的存储空间
- 如果存储的不是相同的数据类型, 那么就不会分配连续的存储空间
创建数组的其它方式
通过构造函数创建数组
let 变量名称 = new Array(size); 创建一个指定大小数组
let 变量名称 = new Array(); 创建一个空数组
let 变量名称 = new Array(data1, data2, …); 创建一个带数据的数组
let arr = new Array(3);
let arr = new Array();
arr[0] = "aa";
arr[1] = "bb";
arr[2] = "cc";
arr[3] = "dd";
console.log(arr);
let arr = new Array("aa", "bb", "cc", "dd");
通过字面量创建数组
let 变量名称 = []; 创建一个空数组
let 变量名称 = [data1, data2, …]; 创建一个空数组
let arr = [];
arr[0] = "aa";
arr[1] = "bb";
arr[2] = "cc";
arr[3] = "dd";
let arr = ["aa", "bb", "cc", "dd"];