Es6
简介
let 和const
1.let声明特性
不能重复声明(var可以重复声明)
块级作用域 (只在代码块里有效)
不存在变量提前声明(var声明的变量会在最开始进行声明)
不影响作用域链
2.const
const 定义常量
一定要赋初始值
一般常量使用大写
常量值不能修改
块级作用域
对于用const 声明的数组和元素,对其进行修改时,不算作对常量的修改,不会报错(因为数组的地址没有改变)
变量的结构赋值
ES6 允许按照一定的模式从数组和对象中提取值,对变量进行赋值,这被称为解构赋值
1.数组的解构
2.对象的解构
作用效果就是可以省略对象
模板字符串
ES6 引入新的声明字符串的方式``
1.声明
let str=`我也是个字符串`
2.特性
- 内容可以直接出现换行符,不需要加号拼接
- 变量拼接
函数新特性
1.函数参数的初始值
注意:需要设置默认值的参数要靠后
传递参数不能用let const 再次声明
数组
1.简介
数组时对象
它和普通对象的功能类似,也是用来存储一些值的
不同的是普通对是使用字符串作为属性名
数组是用数字做为索引来操作元素
数组的存储性能比普通对象要好,在开发中经常使用一些数组来存储一些数据
数组中的元素可以是任意数据类型
1)创建数组对象
var arr=new Array();
使用typeof检查数组时,会返回object
2)向数组中添加元素
语法:数组[索引]=值;
如果读取不存在的索引,不会报错而是返回undefined
未赋值的索引中没有数值,为空
3)获取数字长度
语法:数组.length
4)修改数组长度
修改length
arr.length=数值
如果修改的length大于原长度,多余的为空值
如果length小于原长度,多出的元素会删除
5) 向最后一个位置添加元素
语法:arr[arr.length]=数值
2.数组字面量
1)使用字面量创建数组
使用字面量创建数组时,可以在创建时就指定数组的元素
var arr=[1,2,3,4,10]
2)使用构造函数创建数组(不常用)
使用构造函数创建数组时,也可以同时添加元素,将要添加的元素作为构造函数的参数传递
var arr =new Array(10,20,30)
注意:若只传递一个值作为参数,则这个值表示为数组的长度
数组中的元素可以是任何数据类型
可以是对象
也可以是函数
数组中也可以放数组
3.数组方法
1)push()末尾添加 返回数组长度
向数组的末尾添加一个或多个元素,并返回数组新的长度
可以将要添加的元素作为该方法的参数传递,这样,这些元素将会自动添加到数组的末尾
2)unshift() 开头添加 返回长度
向数组开头添加一个或多个元素,并返回新的数组长度,向前面插入元素后,其他元素的索引会依次调整
3)pop()末尾删除 返回元素
该方法可以删除最后一个元素,并返回被删除的元素
4)shift()开头删除 返回元素
可以删除数组的第一个元素,并将删除的元素作为返回值返回
5)slice()提取元素到新数组
可以用来从数组提取指定的元素
该方法不会改变数组,而是会将提取的元素封装到一个新数组中返回
两个参数:
1.截取开始位置的索引
2.截取结束位置的索引
左闭右开,且第二个参数可以不写(代表截取到最后一个元素)
第二个参数可以传递一个负值,表示截取到倒数第几个(仍为开区间)
6)splice()删除 返回元素
删除数组中的指定元素
使用splice 会影响到原数组,会将指定元素从原数组中删除,并将被删除的元素返回
参数:
1.表示开始位置的索引
2.表示删除的数量
3.第三个及以后可以传递新的元素,这些元素将会替换到被删除索引开始位置的前面
7)concat 拼接
语法: arr1.concat(arr2);
将数组2拼接到数组1的后面
8)filter(函数)
返回的是数组中每一个都符合条件的元素,组成了一个新的数组
函数中是筛选条件
9)indexOf(元素)
该方法可以返回某个指定的数组值在数组中首次出现的位置,返回的是索引,没有则是-1;
10)reverse()
反转数组,调用该方法后,原数组会发生改变
11)some(函数) 返回布尔
用于检测数组中的元素是否满足指定条件
some()方法会依次执行数组中的每个元素,有满足条件的便不会再执行
如果有一个满足条件,则返回true
可以用来做单选多选的判断
12)every(函数)
判断数组中所有元素是否都满足条件
会遍历每一个元素,若有一个不满足条件,则停止遍历并返回false
4.数组的遍历
一般用for循环遍历数组
js还提供了另外一个方法foreach()来遍历数组
1)forEach()
该方法需要一个函数作为参数 像这种函数,由我们创建但是不由我们调用,称为回调函数 数组中有几个函数就会执行几次
每次执行时,浏览器会将遍历到的元素以实参的形式传递进来 可以来定义实参,来读取这些内容
浏览器会在回调函数中传递三个参数,数组索引对应的元素,索引值,数组
Promise
1.基本使用
各种异步操作都可以使用同样的方法进行处理
let pro=new Promise(function(resolve,reject)){
setTimeout(function(){
//
//let data='数据库中用户的数据';
//resolve(data);//会将状态变为成功
let err='数据读取失败'
reject(err)
},1000)
}
//调用promise的then方法,接受两个参数,两个参数是函数的形式,
//函数中成功的形参是res ,失败的形参是err
pro.then(function(res){
console.log(res);//如果成功 会在控制台中打印 数据库中用户的数据
},function(err){
console.log(err); //如果失败,会在控制台打印 数据读取失败
})
2.Promise封装Ajax请求
本周总结
这一周将学习计划让制作的页面功能基本实现,并且进行了完善
下周计划
在完善增删改查的页面的基础上,再完成一个个人信息页面,将轮播图的知识更好的掌握