变量
数据类型
数据类型转换
运算符
判断语句
循环语句
函数
- js中头等公民
- 语法
- 参数
- 返回值
- 作用域
- 作用域的访问原则
- 作用域的赋值原则
- 特殊函数
- 递归函数
数组 Array
-
含义:
有序
的数据集合(存储多个数据) -
数组也是一种数据类型,是一种复杂的数据类型
-
数组的有序 不是所数据放到里面就会自动排序 有序是体现在数组下标(索引)
-
下标是自动生成的 只要我们往数组里面放一个数据 就会自动生成一个下标
-
下标是从0开始的 结束下标是
数组长度-1
-
数组的长度
- 数组名.length
-
创建数组
- 字面量
- var 变量名 = [数据, 数据, 数据]
- 内置构造函数
- var 变量名 = new Array(数据, 数据, 数据)
- 字面量
-
数组动态添加数据
- 数组名.unshift(数据) 往数组的开头添加一个新数据
- 数组名.push(数据) 往数组的末尾添加一个新数据
-
获取数组的数据
- 通过下标的方式获取
- 数组名[下标]
- 当我们获取数组数据的时候 如果下标超出了数组的范围 获取是不会报错的 只是得到的值是undefined
- 通过下标的方式获取
-
通过方法获取数组里面的数据
- 数组名.shift() 从数组的开头取出一个数据
- 数组名.pop() 从数组的末尾取出一个数据
-
数组的删除
- delete 数组名[下标] 这种删除方式一般多用于删除对象 数组删除的时候不会改变数组的长度 只是清空了数据
- 数组名.splice(开始下标, 删除的个数) 删除
- 数组名.splice(开始下标, 删除的个数, 新数据,新数据…) 删除之后再当前删除的位置插入新的数据
-
数组的修改数据
- 数组名[下标] = 数据
- 如果该下标位置有数据 就是修改 如果没有就是新增
-
遍历数组
- 将数组里面的每一项数据都取出
- 用循环先生成数组的下标范围
-
判断数组里面是否包含某一个数据
- 数组名.indexOf(数据)
- 如果数组里面找到这个数据 返回这个数据所对应的下标
- 如果数组里面没有找到这个数据 固定返回-1
- 数组名.includes(数据)
- 如果数组里面有这个数据 返回true
- 如果数组里面没有这个数据 返回false
- 数组名.indexOf(数据)
-
数组的去重
-
数组的反转
- 数组名.reverse()
- 反转会改变原数组
-
数组的拼接
- 数组名.concat(数组01, 数组02…)
-
数组的排序
- 冒泡排序法
- 思路
- 使用双重for循环
- 外层循环决定了比较的轮数 一共需要比较数组的长度-1次 最后一次不用比
- 内层循环决定了每一次比较 每一次拿相邻的两个数进行比较 每一次都可以确定一个数的位置
- 使用双重for循环
- 数组名.sort()
- 默认的sort排序按照字符串比较规则进行排序 字符串比较按照每一位字符进行比较 10 2
- 这种不是我们想要的规则 用sort需要自定义排序
数组名.sort(function(a, b){ console.log(a) console.log(b) })
数据类型
- 基础数据类型(简单的数据类型)
- 复杂的数据类型