1. let
let:用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效,即let声明的是一个块作用域内的变量。
const
声明一个只读的常量。一旦声明,常量的值就不能改变。const实际上保证的是变量指向的那个内存地址所保存的数据不得更改。
对于简单的数据(数值、字符串、布尔值)值就保存在变量指向的那个内存地址,等同于常量
但对于复合类型的数据(主要是对象和数组)变量指向的内存地址,保存的只是一个指向实际数据的指针,
const只能保证这个指针是固定的,至于它指向的数据结构是不是可变的,就完全不能控制了。
因此,将一个对象声明为常量必须非常小心。
2. 箭头函数
特点:
不需要function关键字来创建函数
省略return关键字
继承当前上下文的this关键字
3. 函数参数默认值
// ES6之前,当未传入参数时,text = 'default'; function printText(text) { text = text || 'default'; console.log(text); } // ES6; function printText(text = 'default') { console.log(text); } printText('hello'); // hello printText();// default
4. 模板字符串
//ES5时,我们往往这么处理模板字符串:通过“\”和“+”来构建模板 $("body").html("This demonstrates ”+ name + ", " + seatNumber + ", " + sex + " and so on."); //ES6:将表达式嵌入字符串中进行拼接,用${}+``反引号 $("body").html(`This demonstrates ${name}, ${seatNumber}, ${sex} and so on.`);
5. 对象和数组的解构
6. super
https://www.cnblogs.com/yinping/p/11234019.html
7. Promise
Promise是ES6引入的异步编程的新解决方案。语法上Promise是一个构造函数,用来封装异步操作并可以获取其 成功或失败的结果。
const fs= require('fs') //Promise 核心有三次状态 初始化成功失败 //resolve 函数类型参数,可以将promise状态设置为成功 //rejeact 同理 设置为失败 const p =new Promise((resolve,reject)=>{ fs.readFile('../a.txt',(err,data)=>{ if(err){ reject(err) } resolve(data) }) }) //p.then 当promise的状态为成功 then被调用 //p.catch 当失败时调用 p.then((res)=>{ console.log(res.toString()) })