import 是为了模块化设计引入的功能,是 js 内置支持的。require 是第三方的模块化方案,出现早于 import。
export
系统自动创建一个 object,作为 export 导出的变量,我们这里用 p 称呼这个变量。
export 在一个 js/ts 文件内可以有多个,每次都将导出的变量添加为 p 的属性,变量名称就是新增到 p 的属性名,所以 export 必须有变量名,直接 export 一个 {} 是不可以的。
export let a = { name: "jakey" } //正确,导出变量 p 添加属性 a
export { name: "jakey" } // 错误,没有名称,不知道到添加到 p 的属性名称
export default { name: "jakce" } // 正确,属性名就是 default,p.default。export default 只能有一句
// 还可以用大括号把所有要导出的变量合并起来一起导出
export { a, b, c } //多条这样的语句也是可以的
// 等同于
export a
export b
export c
// 系统把这些变量添加到 p 的同名属性下
import
export 的是一个 {} object,import 导入的就是这个 object。
import {a,b} from "./test" //把 p 的 a、b 属性分别解构给变量 a b
import {a as a1 } from "./test" //把 p 的 a 属性解构给变量 a1
import * as imp from "./test" //把导入的 p 命名为 imp,使用 imp 可以调用 test 模块所有 export 出来的变量