…
含义:
1. 函数中的剩余参数
1  | function pick(object, ...keys) {  | 
keys 是一个包含所有在 object 之后的参数的剩余参数(这与包含所有参数的 arguments 不同,后者会连第一个参数都包含在内)
2. 数组的扩展运算: 将一个数组分割,返回分离的各个项
在vuex中的辅助函数中常有这样的用法,如下:
1  | import { mapGetters } from 'vuex'  | 
作用是将mapGetters返回的数组分割开来放到了computed属性里
还有这样一个例子:
1  | let values = [25, 50, 75, 100]  | 
3. 对象的扩展运算:属于es7的内容
1  | let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 };  | 
export与import
命名导出: 对导出多个值很有用。在导入期间,必须使用相应对象的相同名称
1
2
3
4
5
6
7// module "modules.js"
export function cube(x) {}
const foo = Math.PI + Math.SQRT2;
export var a = 1;
export { cube,foo };
// 导入时:
import { cube, foo, a } from 'modules.js';默认导出: 可以使用任何名称导入默认导出,且一个模块只能有一个默认的导出
1
2
3
4// module "modules.js"
export default k = 12;
// 导入时:
import x from 'modules.js';
注意:不能直接使用var,let或const作为默认导出
1  | var a = 1;  | 
原因:export后面需要跟变量声明或者大括号作为输出,而export default命令其实只是输出一个叫做default的变量,所以它后面不能跟变量声明语句。
1  | // modules.js  | 
综合用法:
一些成熟的框架都是这样导入的:
1  | import React, { Component } from 'react';  | 
下面就是我们的实例:
1  | // modules.js  | 
Generator 函数
1  | function* fun() {  | 
这种函数有两个特征:
- function关键字后紧跟
* - 函数内部用
yield语句。yield意思是产出 


