// X.js
export default X; // export default只能使用一次
export A;
export B;
// 使用 as 重新定义导出的接口名称,隐藏模块内部的变量
export C as C_export_name;

  1. import {A, B} from '/X.js';
    import { D } from '/X.js'; //报错

加上花括号只能接受文件中export的明确导出接口的变量,函数与类,如果没有对应名称则会报错。

  1. import X from '/X.js';
    import D from '/X.js';
    import A from '/X.js';
    //此时X,D,A接受的是export default后导出的对象。
  2. import {A as A_import_name} from 'X.js';
    使用 as 重新定义变量名
  3. import '/X.js';
    // 导入外部的模块,并立即执行, 但对于其中的export会自动忽略
import('/X.js').then(result=>{
    console.log('then:',result)
})

import()函数返回一个Promise对象。result接收了X.js模块。包含所有export, export default的对象。

  1. import * as import_name from '/X.js';
    import_name会接受一个Module对象,里面包含所有export, export default的对象。

猜猜我是谁
18 声望5 粉丝

一个话痨的技术小白