相比ES5,很明显ES6的语法更简洁易维护,ES6新增很多东西,如下;
1.块级变量let 与 常量 const,他们与var 变量有啥区别呢?
* 块级变量:在代码块区域内,定义的变量,他的作用域只在当前代码块;
*常量:定义的变量不可重复定义。
*var 变量:定义的变量可以全局使用,也存在变量提升。
2.解构赋值取值
var obj = {
name:"张三",
age:15
}
*取值:
let { name , age } = obj;
console.log(name, age );//张三 15
*赋值:
let obj = { name:'李四',age:18};
console.log(name, age );//李四 18
3.变量赋值重命名
let test = {
id:10014
}
当需要重命名变量时;可以这么操作:
let { id : newId } = test;
console.log(newId); // 10014
4.箭头函数
*箭头函数跟普通函数的区别在于 this 的指向;
普通函数的this 指向是指向父级的,而箭头函数的指向是最外层的父级;
5.合并多个对象
let person = Object.assign({name:"诺言"},{sex:'男'});
console.log(person); // { name:"诺言" ,sex :"男"}
6.Promise 异步编程
Promise 有两个特点:
(1)对象的状态不受外界影响。
(2)一旦状态改变,就不会再变,任何时候都可以得到这个结果。
Promise 也有一些缺点。首先无法取消Promise,一旦新建它就会立即执行,无法中途取消。
*基本用法
let promiseHanlder = new Promise(function(resolve,reject){
if(/* 异步操作成功 */){
resolve('需要回调的数据');
}else{
reject(error);
}
})
promiseHanlder.then(function(res){
//执行成功的回调
},function(error){
//执行报错回调
})