ECMA6.0(2015年)

ECMA6.0兼容性:

支持的:IE10+ 、Chrome、FireFox、移动端、NodeJS

如何处理兼容:

  1. 在线编译,引入一个browser.js库即(babel),并设置script 的 type="text/babel" 。缺点时间长
  2. 提前编译

 

1.变量let const

var :存在变量提升,可以重复声明

优点:不会变量提升, 在块级作用域内有效,  形成暂时性死区(在代码块内,使用let命令声明变量之前,该变量不可用的,使用会出错)

const 是常量,不能修改

定义变量:

ES5 :var命令,function 命令。

ES6:除了var 命令,function 命令,新增了let 、constimportclass

 

解构赋值:从数组或对象中提取值,对变量进行赋值。

let [x,y] = [10,20]
let [x,,y] = [10,20,30]      

注意:左右两边结构必须一样,初始化同时并赋值。

 

2.函数

箭头函数:

//一般函数
window.onload = function (x,y) {
  ....
}

//箭头函数 去除function ,在()与{}之间插入=>

winddow.onload = (x,y) => { ... }
  • 如果只有一个参数,() 可以省略
  • 如果只有一个return{ }可以省略
//不确定参数个数时,使用 ...点表示剩余参数

function args(x,y, ...lastArgs) {
    ......
}

// ... 还可以表示数组所有元素

let arr1 = [10,20,30]

let arr = [1,2,...arr1]      //结果:[1, 2, 10, 20, 30]

 

 

 

3.数组

 

4.字符串

 

5.Promise 承诺

由于异步任务获得数据只能通过回调函数  ,回调函数里面嵌套回调函数,多层回调函数嵌套即形成"回调地狱"。

为了避免出现回调地狱,ES6中引入了一个API  Promise(承诺)是一个构造函数。 Promise相当于一个容器,里面存放一个异步任务,默认异步任务有三种状态:

初始  peding    ——> 成功  resolve

                         ——>失败 reject

只能从初始到这两个状态,不能转换

   

1.创建promise容器。Promise一旦创建,就开始执行。(Promise 本身不是异步的,里面的异步任务是)

var fs = require("fs")

var fs = require("fs")
var p1= new Promise( function (resolve ,reject) {
  fs.readFile('./db.json','utf-8' ,function (err ,data) {
    //异步任务失败,将容器的peddling状态改为reject状态
    if (err) {
      reject(err)

      //异步任务成功,将peddling状态改为resolve
      }else {
        resolve(data)
      }
  })
})


var p2= new Promise( function (resolve ,reject) {
  fs.readFile('./db2.json','utf-8' ,function (err ,data) {
    //异步任务失败,将容器的peddling状态改为reject状态
    if (err) {
      reject(err)

      //异步任务成功,将peddling状态改为resolve
      }else {
        resolve(data)
      }
  })
})


var p3= new Promise( function (resolve ,reject) {
  fs.readFile('./db3.json','utf-8' ,function (err ,data) {
    //异步任务失败,将容器的peddling状态改为reject状态
    if (err) {
      reject(err)

      //异步任务成功,将peddling状态改为resolve
      }else {
        resolve(data)
      }
  })
})



p1
  .then(function (data) {
    //成功的resolve函数。
    //return 一个promise对象时,后面then中方法的第一个参数也是resolve
    return p2
  },function (err) {
    //失败的reject函数
  })
  .then( function(data) {
    return p3
  })
  .then( function (data) {
    console.log(data)
  })

 

 

6.Generator 生成器函数

 

7.Symbol

你可能感兴趣的:(JavaScript)