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);
相关推荐
明月_清风41 分钟前
自定义右键菜单:在项目里实现“选中文字即刻生成新提示”
前端·javascript
明月_清风42 分钟前
告别后端转换:高质量批量导出实战
前端·javascript
刘发财5 小时前
弃用html2pdf.js,这个html转pdf方案能力是它的几十倍
前端·javascript·github
ssshooter12 小时前
看完就懂 useSyncExternalStore
前端·javascript·react.js
Live0000013 小时前
在鸿蒙中使用 Repeat 渲染嵌套列表,修改内层列表的一个元素,页面不会更新
前端·javascript·react native
柳杉13 小时前
使用Ai从零开发智慧水利态势感知大屏(开源)
前端·javascript·数据可视化
球球pick小樱花14 小时前
游戏官网前端工具库:海内外案例解析
前端·javascript·css
喝水的长颈鹿14 小时前
【大白话前端 02】网页从解析到绘制的全流程
前端·javascript
用户145369814587814 小时前
VersionCheck.js - 让前端版本更新变得简单优雅
前端·javascript
codingWhat14 小时前
整理「祖传」代码,就是在开发脚手架?
前端·javascript·node.js