import

2020-10-23 17:13:52 浏览数 (2)

import and require

1. import 是什么

代码语言:javascript复制
import 是一个 promise 对象

2. import 和 require

代码语言:javascript复制
require/exports: CommonJs/AMD 中为了解决模块化语法而引入的
代码语言:javascript复制
import/export: ES6 引入的新规范

2.1 调用时间

代码语言:javascript复制
require 是运行时调用,所以理论上可以运作在代码的任何地方
代码语言:javascript复制
import 是编译时调用,所以必须放在文件的开头

2.2 本质

代码语言:javascript复制
require 是赋值过程,其实 require 的结果就是对象、数字、字符串、函数等,再把结果赋值给某个变量,它就是普通的值传递。
代码语言:javascript复制
import 是结构过程,使用 import 导入模块的属性或者方法是引用传递,且 import 是 readonly,值是单向传递的.

2.3 用法展示

require
代码语言:javascript复制
// module.js
module.exports = {
  print: function() {
    console.log(123);
  }
};

// sample.js
var obj = require('./module.js');
obj.a();
import
代码语言:javascript复制
// module.js
export default function test(args) {
  console.log(args);
};

// sample.js
import test from './module.js';
test();

2.4 总结

  • 通过 require 引入基础数据类型时,属于复制改变量
  • 通过 require 引入复杂数据类型时,属于浅拷贝该对象
  • 出现模块之间循环引用时,会输出已执行的模块,未执行的模块不会输出
  • CommonJs 规范默认 export 是一个对象,即使对象导出的是一个基础数据类型

0 人点赞