解构赋值
解构赋值允许用户将对象字段的作用域本地化:
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');