…
含义:
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意思是产出