es6 的export导出的变量需要与文件中的变量一一对应
export 变量 函数声明同时导出,或者将变量名函数名包在{}里面一并导出
export 和import 的变量名要一一对应
let name = 'lili'
let age = 18
export { name, age }
export function fun() {
console.log(1)
}
// 导入
import { name,age,fun } from './a.js'
默认导出export default 只能有一个,export 可以有多个,两者可以混用
let name = 'lili'
let age = 18
export { name, age }
export function fun() {
console.log(1)
}
export default 'pp'
// 导入
import * as data from './a.js'
console.log(data)
// Module {Symbol(Symbol.toStringTag): "Module"}
// {
// age: 18
// default: "pp"
// fun: ƒ fun()
// name: "lili"
// }
重命名 as 强调后面的变量名在当前文件使用
// 导出
let name = 'lili'
let age = 18
export { name as a, age as b }
// 导入
import { a as name,b as age } from './a.js'
console.log(name,age, '----------')
导入只能是静态的,不能有变量,表达式出现,否则报错。因为在编译时就会先执行代码,而不是在运行是执行代码
//以下是错误的
import { 'a'+'b' } from './a.js'
let name = 'foo'
import { name + 'foo' } from './a.js'