ES新特性

143 阅读1分钟

解构赋值

解构赋值允许用户将对象字段的作用域本地化:

var sandwich = {
    bread:"dutch crunch",
    meat:"tuna",
    cheese:"swiss",
    toppings:["lettuce","tomato","mustard"]
}
var {bread,meat} = sandwitch
console.log(bread,meat)   //print dutch crunch tuna

上述代码将bread和meat从对象中提出出来,为它们创建相应的局部变量。

解构数组:

var [firstSort] = ['kirkwood","squaw","alpine"];
console.log(firstSort)  //print kirkwood

扩展运算符

通过...对数组、对象进行结构操作:

function directions(...args){
    var [start,...remaining] = args;
    var [finish,..stops] = remaining.reverse();
    console.log(`drive through ${args.length} cities`);
    console.log(`start in ${start}`);
    console.log(`the destination is ${finish}`);
    console.log(`stopping ${stops.length} times in between`)
}
directions(
    'nanjing',
    'beijing',
    'shanghai'
);

Promise对象

Promise对象,将异步行为的处理结果简化为成功或者失败:

const getData = count =>new Promise((resolves,rejects)=>{
    const api = `https://api.randomuser.me?nat=US&results=${count}`;
    const request = new XMLHttpRequest();
    request.open('GET',api);
    request.onload = ()=>
        (request.status === 2000) ? resolves(JSON.parse(request.response).results) : rejects(Erros(request.statysText));
    request.onerror = (err) =>rejects(err);
    request.send();
})

ES6模块

通过*将所有信息导入单个变量中:

import * as fns from './text-helpers'

CommonJS

CommonJS通过module.exports语句导出JS对象,但不支持import语句,通过require函数实现模块导入:

const print(message) =>log(message,new Date());
const log(message,timestamp)=>console.log(`${timestamp.toString()}:${message}`);
module.exports = {print,log}
const {log,print} = require('./txt.helpers');