import 导入
import...from... 必须在文件的最顶层,最外层的作用域,
// 路径可以是相对路径【或根目录下的绝对路径,或应完整的url(说明可以引用cdn上的一些文件)】,但不能以字母开头【js会以为是加载第三方插件】
import {name} from './module.js'
import {name} from '/2-2/export/module.js'
import {name} from 'http://localhost:3000/2-2/export/module.js'
执行某个模块,不提取,多用于加载其他项目中的子模块
import {} from './module.js'
import './module.js' // 简写
动态导入(可以放在任意文件中的任意位置)
import('./module.js').then(function(module){
console.log(module)
})
导入默认参数 (as后面是别名)
import { name, age, default as title} from './module.js'
import title, { name, age } from './module.js' // 简写
导入,提取所有成员
import * as mod from './module.js'
console.log(mod)
导入单个默认参数
import default as title from './module.js'
export 导出
导出形式 1,分条导出
export var name = 'foo module'
导出形式 2,集中导出
export { name, hello, Person}
导出形式 3,导出重命名,到引入页面,
import 也需要用已经重命名的参数名,import {fooName} from './module.js'
export {
// name as default, // 作为默认项导出,导入页面需要重命名,import {default as fooName} from './module.js'
hello as fooHello,
Person as FooPerson
}
注意
import 命令会提升到整个模块的头部,首先执行。
import 导入的成员是一个只读对象,不可在导入文件中修改。
import只读属性:不允许在加载模块的脚本里面,改写接口的引用指向,即可以改写 import 变量类型为对象的属性值,不能改写 import 变量类型为基本类型的值。静态执行特性:import 是静态执行,所以不能使用表达式和变量。
在一个文件或模块中,export、import可以有多个,export default仅有一个
export 命令可以出现在模块的任何位置,但必需处于模块顶层。
通过 export 方式导出,在导入时要加{ },export default 则不需要。
export default 向外暴露的成员,可以使用任意变量来接收。