JavaScript零基础入门 6:JavaScript数组详解

🍅 作者简介:CSDN2021博客之星亚军🏆、新星计划导师✌、博客专家💪

🍅 哪吒多年工作总结:Java学习路线总结,搬砖工逆袭Java架构师

🍅 关注公众号【哪吒编程】,回复1024,获取Java学习路线思维导图、大厂面试真题、加入万粉计划交流群、一起学习进步

目录

一、垃圾回收(GC)

二、数组(Array)

1、什么是数组

2、索引

3、创建数组对象

4、向数组中添加元素

5、读取数组中的元素

6、获取数组的长度

7、修改length

8、向数组的最后一个位置添加元素

三、数组中的方法

1、push()

2、pop()

3、unshift()

4、shift()

5、slice()

6、splice()

7、slice()

8、concat()

9、join()

10、reverse()

11、sort()

四、数组的遍历

1、for

 2、forEach()

五、函数中的方法

1、call()和apply()

2、this与arguments


一、垃圾回收(GC)

当一个对象没有任何的变量或属性对它进行引用,此时我们将永远无法操作该对象,此时这种对象就是一个垃圾,这种对象过多会占用大量的内存空间,导致程序运行变慢,所以这种垃圾必须进行清理。

在JS中拥有自动的垃圾回收机制,会自动将这些垃圾对象从内存中销毁,我们不需要也不能进行垃圾回收的操作,我们需要做的只是要将不再使用的对象设置null即可。

二、数组(Array)

1、什么是数组

数组也是一个对象,它和我们普通对象功能类似,也是用来存储一些值的,不同的是普通对象是使用字符串作为属性名的,而数组时使用数字来作为索引操作元素。

2、索引

从0开始的整数就是索引。

数组的存储性能比普通对象要好,在开发中我们经常使用数组来存储一些数据。

3、创建数组对象

var arr = new Array();

4、向数组中添加元素

语法:数组[索引] = 值

arr[0] = '哪吒';
arr[1] = '比比东';
arr[2] = '云韵';
arr[3] = '雅妃';

5、读取数组中的元素

语法:数组[索引]

如果读取不存在的索引,他不会报错而是返回undefined

6、获取数组的长度

语法:数组.length

  • 对于连续的数组,使用length可以获取到数组的长度(元素的个数);
  • 对于非连续的数组,使用length会获取到数组的最大的索引+1;
  • 尽量不要创建非连续的数组;

7、修改length

  • 如果修改的length大于原长度,则多出部分会空出来;
  • 如果修改的length小于原长度,则多出的元素会被删除

8、向数组的最后一个位置添加元素

语法:数组[数组.length] = 值;

三、数组中的方法

1、push()

向数组的末尾添加一个或多个元素,并返回数组的新的长度。

2、pop()

该方法可以删除数组的最后一个元素,并将被删除的元素作为返回值返回。

3、unshift()

向数组开头添加一个或多个元素,并返回新的数组长度,向前边插入元素以后,其他的元素索引会依次调整。

4、shift()

删除数组的第一个元素,并将被删除的元素作为返回值返回。

5、slice()

可以用来从数组提取指定元素。

该方法不会改变元素数组,而是将截取到的元素封装到一个新数组中返回。

参数:

  1. 截取开始的位置的索引,包含开始索引

  2. 截取结束的位置的索引,不包含结束索引

  3. 第二个参数可以省略不写,此时会截取从开始索引往后的所有元素

  4. 索引可以传递一个负值,如果传递一个负值,则从后往前计算。-1 倒数第一个,-2 倒数第二个

6、splice()

可以用于删除数组中的指定元素,使用splice()会影响到原数组,会将指定元素从原数组中删除,并将被删除的元素作为返回值返回。

参数:

第一个,表示开始位置的索引

第二个,表示删除的数量

第三个及以后, 可以传递一些新的元素,这些元素将会自动插入到开始位置索引前边。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript">
			
			var arr = ["哪吒","比比东","云韵",]
			// 从第1个开始删除,删除两个,并将后面的加到数组后面
			var result = arr.splice(1,2,"雅妃","纳兰嫣然");
			
			document.write(arr);
			
		</script>
	</head>
	<body>
	</body>
</html>

7、slice()

从数组提取指定元素,该方法不会改变元素数组,而是将截取到的元素封装到一个新数组中返回。

参数:

(1)截取开始的位置的索引,包含开始索引;

(2)截取结束的位置的索引,不包含结束索引;

第二个参数可以省略不写,此时会截取从开始索引往后的所有元素。

索引可以传递一个负值,如果传递一个负值,则从后往前计算,-1 倒数第一个,-2 倒数第二个。

8、concat()

concat()可以连接两个或多个数组,并将新的数组返回,该方法不会对原数组产生影响。

9、join()

该方法可以将数组转换为一个字符串。

该方法不会对原数组产生影响,而是将转换后的字符串作为结果返回。

在join()中可以指定一个字符串作为参数,这个字符串将会成为数组中元素的连接符。

如果不指定连接符,则默认使用,作为连接符。

10、reverse()

该方法用来反转数组(前边的去后边,后边的去前边)。

该方法会直接修改原数组。

11、sort()

对数组中的元素进行排序。

会影响原数组,默认会按照Unicode编码进行排序。

即使对于纯数字的数组,使用sort()排序时,也会按照Unicode编码来排序,所以对数字进排序时,可能会得到错误的结果。

可以在sort()添加一个回调函数,来指定排序规则,回调函数中需要定义两个形参,浏览器将会分别使用数组中的元素作为实参去调用回调函数,浏览器会根据回调函数的返回值来决定元素的顺序。

  • 如果返回一个大于0的值,则元素会交换位置;
  • 如果返回一个小于0的值,则元素位置不变;
  • 如果返回一个0,则认为两个元素相等,也不交换位置;
<script>
arr = [5,4,2,1,3,6,8,7];
	arr.sort(function(a,b){
	//前边的大
	/*if(a > b){
		return -1;
	}else if(a < b){
		return 1;
	}else{
		return 0;
	}*/
	
	//升序排列
	//return a - b;
	
	//降序排列
	return b - a;
});

document.write(arr);
</script>

输出结果:8,7,6,5,4,3,2,1

四、数组的遍历

1、for

(1)代码实例

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript">
			
			var arr = ["哪吒","比比东","云韵","雅妃","纳兰嫣然"]

			for(var i=0 ; i<arr.length ; i++){
				document.write(arr[i]+ '\n');
			}
			
		</script>
	</head>
	<body>
	</body>
</html>

(2)浏览器输出

 2、forEach()

forEach()方法需要一个函数作为参数,像这种函数,由我们创建但是不由我们调用的,我们称为回调函数。

数组中有几个元素函数就会执行几次,每次执行时,浏览器会将遍历到的元素,以实参的形式传递进来,我们可以来定义形参,来读取这些内容。

浏览器会在回调函数中传递三个参数:

  1. 当前正在遍历的元素

  2. 当前正在遍历的元素的索引

  3. 正在遍历的数组

(1)代码实例

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript">
			
			var arr = ["哪吒","比比东","云韵","雅妃","纳兰嫣然"]

			arr.forEach(function(value , index , obj){
				document.write(value + ' \n ');
			});
			
		</script>
	</head>
	<body>
	</body>
</html>

(2)浏览器显示

五、函数中的方法

1、call()和apply()

这两个都是调用函数的方法,只是传参的方式不同。

  • call()方法可以将实参在对象之后依次传递;
  • apply()方法需要将实参封装到一个数组中统一传递

<!DOCTYPE html>
<html>

	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript">
			function fun(a,b) {
				console.log("a = "+a);
				console.log("b = "+b);
				alert(this);//[object Object]
			}
			
			var obj = {
				name: "obj",
				sayName:function(){
					alert(this.name);
				}
			};
			
			fun.call(obj,1,2);
			fun.apply(obj,[3,4]);

			var obj2 = {
				name: "obj2"
			};
		</script>
	</head>

	<body>
	</body>

</html>

2、this与arguments

(1)this

  1. 以函数形式调用时,this永远都是window
  2. 以方法的形式调用时,this是调用方法的对象
  3. 以构造函数的形式调用时,this是新创建的那个对象
  4. 使用call和apply调用时,this是指定的那个对象 

(2)arguments

arguments是一个类数组对象,它也可以通过索引来操作数据,也可以通过arguments.length获取长度。

比如arguments[0] 表示第一个实参,arguments[1] 表示第二个实参。

它里边有一个属性叫做callee,这个属性对应一个函数对象,就是当前正在指向的函数的对象。

代码实例:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript">
			function fun(a,b){
				console.log("111"+arguments instanceof Array);//false
				console.log("222:"+Array.isArray(arguments));//false
				console.log("333:"+arguments[1]);//true
				console.log("444:"+arguments.length);//2
				console.log("555:"+arguments.callee == fun);//false
			}
			
			fun("hello",true);
			
		</script>
	</head>
	<body>
	</body>
</html>

🍅 作者简介:CSDN2021博客之星亚军🏆、新星计划导师✌、博客专家💪

🍅 哪吒多年工作总结:Java学习路线总结,搬砖工逆袭Java架构师

🍅 关注公众号【哪吒编程】,回复1024,获取Java学习路线思维导图、大厂面试真题、加入万粉计划交流群、一起学习进步

  • 15
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
### 回答1: JavaScript 数组是用来存储一组有序的值。数组可以存储任何类型的数据,包括数字、字符串和对象。数组的元素可以通过索引来访问。JavaScript 提供了很多内置的方法来操作数组,如 push()、pop()、shift()、unshift()、slice()、splice()、sort()、concat()等。 ### 回答2: JavaScript是一种面向对象的编程语言,在Web开发领域中广泛使用。作为JavaScript中最核心的数据结构,数组是一个非常重要的概念。在本篇JavaScript学习手册中,我们将详细介绍JS数组。 什么是JS数组JavaScript数组是一组值的有序列表。这些值可以是任何类型,例如字符串、数字、布尔值甚至是其他的数组。数据项可以随时添加到数组中,也可以从数组中移除。数组的长度是可变的,它们可以根据需求扩展或缩小。 在JavaScript中,数组的下标始终从0开始,这是一个重要的概念。因此,在数组中,第一个元素的索引是0,第二个元素的索引是1,以此类推。 JS数组的创建 有许多方法可以创建JavaScript数组。最简单的方法之一是使用数组字面量: var myArray = [1, "string", true]; 上述代码创建了一个名为myArray的数组,并将数字1、字符串“string”和布尔值true添加到该数组中。 另一种常见的创建数组的方式是使用Array()构造函数。例如,以下代码将演示如何创建一个长度为5的数组: var myArray = new Array(5); JS数组的方法 JavaScript提供了许多有用的方法,可以帮助我们操作数组。下面列出了一些最常用的方法: 1. push()方法 - 该方法在数组的末尾添加一个或多个元素。 2. pop()方法 - 该方法从数组的末尾删除一个元素。 3. shift()方法 - 该方法从数组的开头删除一个元素。 4. unshift()方法 - 该方法在数组的开头添加一个或多个元素。 5. concat()方法 - 该方法将两个或多个数组连接为一个数组。 6. slice()方法 - 该方法返回数组的一个子集。 7. splice()方法 - 该方法添加、删除或替换数组中的元素。 JS数组的循环 对于任何类型的数据结构,循环是一种非常常见和强大的操作。下面是一些常用的JS数组循环方法: 1. for循环 - 这是最常用的数组循环方法,在循环中使用数组的长度属性来遍历数组中的元素。 2. forEach()方法 - 该方法对数组中的每个元素执行一个函数。 3. map()方法 - 该方法返回一个新数组,其元素是通过对原始数组中的每个元素应用函数来获得的。 总结 JavaScript数组开发Web应用程序时必须要掌握的一个重要的概念。它们是用来存储和管理数据的一种强大工具,并且JavaScript为操作数组提供了许多有用的方法和循环。在您学习JavaScript时,建议您花费足够的时间来熟悉JS数组及其相关的方法和循环。 ### 回答3: JavaScript数组是一种非常有用的数据类型,它可以存储多个值并按照特定的方式进行操作。在JavaScript中,数组可以包含任何类型的数据,包括字符串,数字,对象和函数。数组是一种非常强大的工具,可以帮助我们更有效地管理和操作数据。 JavaScript数组的基础知识包括数组的创建,访问和修改数组元素。我们可以使用数组字面量来创建一个数组,并可以使用索引号访问和修改数组中的元素。数组的索引是从零开始的,所以第一个元素的索引号为0,第二个为1,以此类推。 除了基本的数组操作之外,JavaScript数组还支持许多高级操作,例如排序,添加和删除元素,筛选和映射数组等。我们可以使用内置的数组方法和属性来执行这些操作。其中一些常用的方法包括push,pop,shift,unshift,slice,splice等。 当处理大量数据时,JavaScript数组的性能问题可能会成为一个问题。为了解决这个问题,我们可以使用更高效的数据结构,例如哈希表和二叉树。但在大多数情况下,JavaScript数组足以应对大多数应用程序的需求。 总之,JavaScript数组是一个非常有用的数据类型,它可以帮助我们有效地管理和操作数据。通过学习并掌握JavaScript数组的常用方法和属性,我们可以使我们的代码更加优雅和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哪 吒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值