简介:
es6是新一代的javascript标准,之前讲的是es5的语法。es6之后的各个版本都可以称之为es6因为它们都是在es6的基础上做少量更改
声明变量:
之前声明变量都是用var去声明变量,使用var去声明变量有变量提升的问题。如果在声明变量之前去使用变量不会报错变量的值是undefinde。
建议使用es6提供的以下两种方法去声明变量:
let 例子:let 变量名=变量的值
const 例子:const 变量名=变量的值
使用let去声明的变量在没有声明之前去使用变量会直接报错,且不要使用let去声明同一个变量使用let去声明同一个变量会报错
使用const声明的变量不能重新赋值否则会报错,且使用const声明引用值时可以改变值里的内容,但不能改变引用值在堆内存中的地址否则会报错,
注:使用let和const声明的变量都拥有块级作用域而var声明的没有
es6的箭头函数:
之前的函数声明:
function 函数名 () {}
箭头函数:
函数名=(参数) => {}
箭头函数的this指向的问题:
事件函数的this指向对应绑定该事件的dom对象。对象中的方法的this 指向该对象。普通函数调用时直接指向window。箭头函数的this指向箭头函数创建时所在环境的this,
es6的扩展运算符:
... 就是扩展运算符
使用方法:...变量名
例: let arr=[1,2,3,4,5] let arr1=[...arr,6,7,8] 这样arr1里边就有了arr的内容
promise对象:
在js中我们经常会用到回调函数,也就是当某种操作进行完或者满足某个条件时之后我们再去调用某个函数,那么这个函数就叫做回调函数,回调函数是可以嵌套的那么当我们的回调函数嵌套多层时就会产生一种叫做“回调地狱”的问题。
什么是promise?
promise是一个构造函数,promise是一种异步编程的解决方案。它有三种状态分别是pedding-(进行中),resolve-(已完成),reject-(已失败),只有异步操作的结果才可以决定当前是哪种状态其他任何操作都改变不了当前的状态。promis的状态改变只会改变两种就是从pedding至resolve的状态和pennding至seject的状态。有了promise就会将异步操作由同步操作展现出来,axios请求就是基于promise的。
}) promise中有两个方法: promise.then(()=>{ 函数体
}).catch(()=>{
函数体
});
当我们在函数中去使用promise时可以这样
}
asd().then(()=>{这里就是满足条件时执行的代码}).catch(()=>{这里是失败时执行的代码})
当我们想要再去调用的话可以再.then()的函数里继续return然后继续再.then()后边继续.then()
我们的axios请求就是这样的原理这样就完成了将异步变为同步的操作只有当上一哥函数完成之后才会执行下一个函数