import

时间:2022-07-28
本文章向大家介绍import,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

import and require

1. import 是什么

import 是一个 promise 对象

2. import 和 require

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

2.1 调用时间

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

2.2 本质

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

2.3 用法展示

require

// module.js
module.exports = {
  print: function() {
    console.log(123);
  }
};

// sample.js
var obj = require('./module.js');
obj.a();

import

// module.js
export default function test(args) {
  console.log(args);
};

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

2.4 总结

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