ES6 export,import和export default用法

1. export命令

模块功能主要由两个命令构成:export和import。export命令用于规定模块的对外接口,import命令用于输入其他模块提供的功能。

一个模块就是一个独立的文件。该文件内部的所有变量,外部无法获取。如果希望外部能够读取模块内部的某个变量,就必须使用export关键字输出该变量。下面是一个JS文件,里面使用export命令输出该变量。

export var firstName = 'Michael'
export var lastName = 'Jackson'
export var year = 1958

ES6将其视为一个模块,里面用export命令对外部输出三个变量。

var firstName = 'Michael'
var lastName = 'Jackson'
var year = 1958

export { firstName, lastName, year }

通常情况下,export输出的变量就是本来的名字,但是可以使用as关键字重命名。

function v1() {...}

function v2() {...}

export {

    v1 as streamV1,
    v2 as streamV2
}

export命令可以出现在模块的任何位置,只要处于模块顶层就可以。如果处于块级作用域内,就会报错。

2. import命令

使用export命令定义了模块的对外接口以后,其他JS文件就可以通过import命令加载这个模块。

import命令接受一对大括号,里面指定要从其他模块导入的变量名。大括号里面的变量名,必须与被导入模块对外接口的名称相同。

如果多次重复执行同一句import语句,那么只会执行一次,而不会执行多次。

import 'lodash'
import 'lodash'

上面代码加载了两次lodash,但是只会执行一次。

import { foo } from 'my_module'
import { bar } from 'my_module'

//等同于
import { foo, bar } from 'my_module'

3. 模块的整体加载

除了指定加载某个输出值,还可以使用整体加载,即用星号(*)指定一个对象,所有输出值都加载在这个对象上面。

// circle.js


exoport function area(radius) {
    return Math.PI * radius * radius
}

export function circumference(radius) {
    return 2 * Math.PI * radius
}

现在,加载这个模块。 

// main.js

import {area, circumference} from './circle'

console.log('圆面积: ' + area(4))


console.log('圆周长: ' + circumference(14))

上面的写法是逐一指定要加载的方法,整体加载的写法如下。

import * as circle from './circle'

console.log('圆面积: ' + circle.area(4))

console.log('圆周长: ' + circle.circumference(14))

 3. export default

export default用于给模块指定默认输出。

export default function() {
    console.log('foo');
}

其他模块加载该模块时,import命令可以为该匿名函数指定任意名字。

import customName from './export-default'

customName()

需要注意的是,import命令后面,不使用大括号。

export default命令用于非匿名函数前,也是可以的。

export default function foo() {
    console.log('foo')
}

上面代码中,foo只在该模块有用。当加载这个函数进入其他模块时,将其视为匿名函数加载。

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值