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);
相关推荐
GalaxyPokemon3 小时前
LeetCode - 2. 两数相加
java·前端·javascript·算法·leetcode·职场和发展
你的人类朋友6 小时前
✍️【Node.js程序员】的数据库【索引优化】指南
前端·javascript·后端
小超爱编程7 小时前
纯前端做图片压缩
开发语言·前端·javascript
islandzzzz8 小时前
HMTL+CSS+JS-新手小白循序渐进案例入门
前端·javascript·css·html
Senar8 小时前
网页中如何判断用户是否处于闲置状态
前端·javascript
很甜的西瓜8 小时前
typescript软渲染实现类似canvas的2d矢量图形引擎
前端·javascript·typescript·图形渲染·canvas
阿芯爱编程10 小时前
最长和谐子序列,滑动窗口
前端·javascript·面试
烛阴10 小时前
开发者神器:如何在浏览器控制台玩转第三方库,让调试效率翻倍!
前端·javascript
拉不动的猪11 小时前
JQ常规面试题
前端·javascript·面试
新中地GIS开发老师12 小时前
三维GIS开发cesium智慧地铁教程(5)Cesium相机控制
javascript·arcgis·智慧城市·大学生·gis开发·webgis·地理信息科学