1.数组的概念及定义
数组:一组任意类型或者相同类型的数据。
除了 Object 类型之外,**Array 类型是ECMAScript 最常用的类型。**而且 ECMAScript 中的 Array 类型和其他语言中的数组有着很大的区别。 虽然数组都是有序排列, 但 ECMAScript中的数组每个元素可以保存任何类型。ECMAScript 中数组的大小也是可以调整的。
2.构造函数的简单介绍了解
构造函数(类)特点:首字母大写,new运算符调用。
类,构造函数:一类事物,抽象的,不占据内存空间。
实例对象:实例化,new构造函数产生实例对象。(具体的,占据内存)
3.数组的创建方式
第一种是 new 运算符(构造函数);
注意:给构造函数传递一个值也可以创建数组。如果传递的是数字,则会按照该数自创建包含 给定项数的数组;而如果传递的是其他类型的参数,则会创建包含那个值的只有一项的数组。
第二种是字面量表示法;
在计算机科学中,字面量是用于表达源代码中一个固定值的表示法。
4.数组的操作
使用索引(index)下标来读取数组的值–下标是固定的,从0开始
数组的length属性 ,代表长度,通过设置这个属性,可以从数组的末尾移除项或向数组中添加新项。
length:静态赋值/动态赋值(动态的,无需指定大小)
数组的遍历for循环–数组索引下标是有序的。
检测数组:Array.isArray() 静态方法(构造函数开头的)
Array.isArray():确定括号中的某个值到底是不是数组
5.数组的方法
push() 可以接收任意数量的参数,把它们逐个添加到数组末尾,并返回修改后数组的长度。
pop() 从数组末尾移除最后一项,减少数组的length值,然后返回移除的项。
unshift()可以接收任意数量的参数,把它们逐个添加到数组前面,并返回修改后数组的长度
shift() 从数组末尾移除前面一项,减少数组的length值,然后返回移除的项。
reverse() 方法会反转数组项的顺序。
sort() 方法按字母表升序排列数组项。
如果按其他方式而非字母表顺序进行数组排列,必须给sort方法传递一个比较函数做参数。
concat() 方可以基于当前数组中的所有项创建一个新数组,参数可以是数组项或者数组。
slice() 方法它能够基于当前数组中的一或多个项创建一个新数组。可以接受一或两个参数,即要返回项的起始和结束位置,不包括结束位置。
splice() 方法对数组进行删除、插入、替换,是最强大的数组方法,返回值是数组,改变原数组。
join()方法,将数组转换成对应的字符串。参数就是连接符。
6.对象的概念及创建
对象是javascript的数据类型。对象是一种复合值,它将很多值聚合在一起,可通过名字访问这些值。对象也看做是属性的无序集合,每个属性都是一个键/值对。
对象(自定义对象)的两种创建方式
构造函数创建对象 var obj=new Object()
字面量创建对象 var obj={ }
7.数组的类别
整数数组
字符串数组
对象数组
二维数组
8.数组和对象的遍历
for循环只能够遍历数组
for…in循环:可以遍历数组和对象,最好遍历对象。
9.JS堆和栈的了解
引用类型和基础类型的不同(内存方面)
栈:自动分配内存空间,系统自动释放,基本类型的值和引用类型(object)的地址
堆:动态分配的内存,大小不定,也不会自动释放。存放引用类型的值。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DsyryhrN-1588755809662)(C:\Users\Administrator\Desktop\第二阶段大纲\img\wps22.jpg)]
值传递和引用传递。
基本类型遵循值传递,引用类型遵循引用传递(地址传递)
数组索引思维
数组元素的索引基本上也是一种属性,而其属性的名称永远都是非负整数。
JavaScript数组有以下三种不同的属性:
1 数组的索引也是其属性–数字索引(属性)
2 内置属性–length
3 你可以自己添加自定义属性(对比for和for…in)
10.数组的排序
1.冒泡排序算法的原理如下:
比较相邻的元素。如果第一个比第二个大,就交换他们两个。
对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对,在这一点,最后的元素应该会是最大的数。
针对所有的元素重复以上的步骤,除了最后一个。
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
2.选择排序原理是:
第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未
排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素
的个数为零。选择排序是不稳定的排序方法。
11.强化练习
- 随机生成一个五位以内的数,然后输出该数共有多少位,分别是什么。
- 数组的冒泡排序(封装函数)
- 数组的选择排序(封装函数)
- 编写函数map(arr) 把数组中的每一位数字都增加30%
- 编写函数has(arr , 60) 判断数组中是否存在60这个元素,返回布尔类型
- 【扩展练习】随机点名程序
12.综合应用
- 编写函数norepeat(arr) 将数组的重复元素去掉,并返回新的数组。
- 有一个从小到大排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
- 定义一个含有30个整型元素的数组,按顺序分别赋予从2开始的偶数;然后按顺序每五个数求出一个平均值,放在另一个数组中并输出。试编程。
- 通过循环按行顺序为一个5×5的二维数组a赋1到25的自然数,然后输出该数组的左下半三角。试编程。
- 使用字面量形式创建一个对象,该对象存储一个学生的信息,该对象包含姓名,学号、身份证、年龄、性别、所学专业等属性信息,同时该对象包含一个自我介绍的方法,用来输出该对象的所有信息.
- 扩展案例:以下是某班级一次考试的成绩表。请计算每个学生总成绩,并按总成绩排名。统计各单科成绩第一名,输出其成绩与学号。
学号 语文 数学 英语 总成绩 备注 1 105 62 118 2 89 78 120 3 86 64 80 4 78 99 91 5 107.5 97 70 6 112 61 92 7 101 79 104 8 71 72 105 9 56 68 61 10 98 83 77
本文详细介绍了JavaScript中的数组,包括数组的概念、创建方式、操作、方法以及与其他数据类型的交互。探讨了数组的遍历、排序算法,如冒泡排序和选择排序,并提供了强化练习和综合应用案例,涵盖了数组的去重、有序插入以及数组相关对象的操作。此外,还涉及到了JavaScript中的堆和栈内存管理,以及对象的创建和遍历。
971

被折叠的 条评论
为什么被折叠?



