一:声明属性let const

var let const 区别

1.var声明变量会发生变量提升,letconst不会发生变量提升 2.var允许重复声明变量,let不可以 3.const声明变量不可以被改变

二:字符串模板

用反引号创建字符串,其中可用${'变量'}

console.log(`your name is ${name}`);

三:解构赋值对数组和对象的优化

四:箭头函数

与普通函数的区别
1、书写上用=>代替了function
2、普通函数的this指向window 而ES6箭头函数里面的this指向定义时的那个对象 而不是运行时的那个对象

//普通函数 var test = function(x){ return x+2; } 使用箭头函数: var test = x=>x+2;

五:新增了class

ES6中添加了对类的支持,引入了class关键字

以前编写一个构造函数(类) function Pad(color){ this.color = color; } 现在的写法跟Java更接近了 class Iphone{ constructor(color, size){ this.color = color; this.size = size; } playgame(){ //............. } toString(){ return `这台手机的颜色是${this.color} 屏幕大小是${this.size}`; } } 我们定义了一个类,名字叫Iphone 通过类生成一个实例: var iphone = new Iphone("白色", 5);  其中constructor被称之为构造方法,在我们new 一个对象的时候,自动被调用 不过本质上,JS依然使用了原型来实现,也就是说,这不过是一个新的写法而已 跟以前的构造函数没有区别。 要注意的是,使用了class来定义类,必须先定义再使用

六:ES6中的set方法

一般用于数组去重

var arr = [1,2,3,3,4,5]; var newarr = new Array.from(set arr) console.log(new arr)//[1,2,3,4,5]

七:promise用来解决异步问题

1、什么是promise?
异步操作的同步代码
2、promise的基本使用
通过new promise创建一个promise对象,里面有一个参数,参数是一个回调函数,回调函数中有2个参数,resolve,reject resolve()当
异步执行成功的时候调用的方法,reject()当异步失败的时候调用的方法。
除此之外promise有一个then方法,当成功的时候执行第一个回调函数,当失败的时候执行第二个回调函数。第二个回调函数也可以通过
promise对象.catch调用
3、Promise.all():当所有的异步代码都执行完毕以后才会执行.then中的操作
4、Promise.race():只要有一个promise执行完毕后就会执行.then操作

如何实现多个异步同步执行 var p1 = new Promise(function(resolve,reject){    setTimeout(function(){      console.log('1');       resolve()    },