JavaScript数组简介

JavaScript中的数组是一种强大的数据结构,它可以用来存储和处理各种类型的数据。熟练掌握数组的使用可以让编写JavaScript代码更加高效和优雅;
● 例如,现在我十个朋友要存到变量中,传统的话

javascript 复制代码
const friend1 = "张三";
const friend2 = "李四";
const friend3 = "王五";

这样一个一个通过变量的方式存储,有点太过于麻烦了!通过数组的存储方法就非常的方便,具体的写法如下:

javascript 复制代码
const friends = ["张三", "李四", "王五"];
console.log(friends);

● 除了这种创建数组的方式之外,还可以使用构造函数 Array() 来创建一个数组。,如下

javascript 复制代码
const years = new Array(1991, 1998, 2000, 2023);

● 现在我们知道了如果去创建数组,但是我们也要有方法去把数组里面的数据取出来!

javascript 复制代码
const friends = ["张三", "李四", "王五"];
console.log(friends);



console.log(friends[0]);
console.log(friends[2]);

注意,数据的编号是0开始的哦;

● 除此之外,我们也可以获取数据的长度

javascript 复制代码
const years = new Array(1991, 1998, 2000, 2023);
const friends = ["张三", "李四", "王五"];
console.log(friends);

console.log(friends[0]);
console.log(friends[2]);

console.log(friends.length);

● 再来,我们也可以获取数组中最后一个数据是什么?

javascript 复制代码
const years = new Array(1991, 1998, 2000, 2023);
const friends = ["张三", "李四", "王五"];
console.log(friends);

console.log(friends[0]);
console.log(friends[2]);

console.log(friends.length);
console.log(friends[friends.length-1]);

● 我们也可以更换数组里面的数据

javascript 复制代码
const years = new Array(1991, 1998, 2000, 2023);
const friends = ["张三", "李四", "王五"];
console.log(friends);

console.log(friends[0]);
console.log(friends[2]);

console.log(friends.length);
console.log(friends[friends.length - 1]);

friends[2] = "IT知识一享";
console.log(friends);

问题:friends数组被声明成一个变量了,而且是用const去声明的,那为什么我们还可以改变数组中的数据?

回答:虽然 const 声明的变量是不可重新赋值的,但对于数组或对象这样的复合类型,声明为 const 的变量仍然可以修改其元素或属性。这是因为在 JavaScript 中,const 只保证了变量的引用地址不变,而不是变量内部的值不变。

对于上述代码中的 friends 数组,虽然使用 const 创建了变量 friends,但仍然可以通过下标访问和修改数组元素的值,因为 friends 是一个数组对象,而不是具有单一值的原始数据类型。如果试图重新分配一个新的数组或者字面量给 friends,那么就会触发变量 friends 的重新声明,从而抛出一个 TypeError 错误。

总之,在 const 声明的情况下,变量引用的值不能被修改,但是它们所指向的对象或数组本身的属性或元素是可以修改的。

意思就是const声明一个变量,例如是一个一次性杯子,但是杯子里面是水还是可乐,const无法保证,const可以保证的是一次性杯子不能换成玻璃杯或其他杯子!

● 除此之外,数据里面的数据可以是通过变量赋值,或者通过表达式,或者通过其他数据,例如:

javascript 复制代码
const friends = ["张三", "李四", "王五"];
console.log(friends);

console.log(friends[0]);
console.log(friends[2]);

console.log(friends.length);
console.log(friends[friends.length - 1]);

friends[2] = "IT知识一享";
console.log(friends);

const firstName = "诸葛亮";
const ITshare = [firstName, "司马懿",1998-85, "student", friends];
console.log(ITshare);
console.log(ITshare.length);

一个错误用法的例子:

javascript 复制代码
const calcAge = function (birthYear) {
  return 2037 - birthYear;
}

const years = [1990, 1998, 2001, 2023];
calcAge(years);

例如,我们想把这个数组一一的代入到函数给我们计算,但是上述代码是行不通的,因为birthyear就是一个单个的数据,我们无法把数据传上去;即使我们把他打印出来也不会是一串很正常的数据

javascript 复制代码
const calcAge = function (birthYear) {
  return 2037 - birthYear;
};

const years = [1990, 1998, 2001, 2023];
console.log(calcAge(years));

● 那么我们讲如何计算呢?可以一步步计算

javascript 复制代码
const calcAge = function (birthYear) {
  return 2037 - birthYear;
};

const years = [1990, 1998, 2001, 2023];
const age1 = calcAge(years[0]);
const age2 = calcAge(years[1]);
const age3 = calcAge(years[2]);
console.log(age1, age2, age3);

● 同样的,我们也可以把age123也存入一个数据里面

javascript 复制代码
const calcAge = function (birthYear) {
  return 2037 - birthYear;
};

const years = [1990, 1998, 2001, 2023];
const age1 = calcAge(years[0]);
const age2 = calcAge(years[1]);
const age3 = calcAge(years[2]);
console.log(age1, age2, age3);

const ages = [calcAge(years[0]), calcAge(years[1]), calcAge(years[2])];
console.log(ages);
相关推荐
随风一样自由7 小时前
【前端独角兽】刚进入前端领域的前端开发用jQuery还是Vue3?
前端·javascript·vue3·jquery
YHHLAI8 小时前
[特殊字符] 面试中的 Promise —— 从入门到精通
前端·javascript·面试
weixin_BYSJ19879 小时前
SpringBoot + MySQL 乒乓球运动员信息管理系统项目实战--附源码04954
java·javascript·spring boot·python·django·flask·php
沪飘大军9 小时前
ll-llm:一个零依赖、可插拔的 OpenAI 兼容 LLM 代理
javascript
山河木马11 小时前
GPU自动处理专题3-NDC怎么映射成屏幕像素坐标(视口变换)
javascript·webgl·图形学
Appthing12 小时前
在 TanStack Start 中使用 VitePWA 的正确配置
javascript
前端炒粉13 小时前
手写promise
java·前端·javascript
mONESY13 小时前
Node.js fs 文件系统模块 四种读写方案全解析
javascript·后端
Larcher13 小时前
从回调地狱到优雅异步:Node.js 文件操作进化史
javascript·后端·架构
熊猫钓鱼>_>14 小时前
Electron:当 Web 技术统治桌面
大数据·前端·javascript·人工智能·架构·electron·agent