乐趣区

关于javascript:JS-import与require

import

import 是 es6 为 js 模块化提出的新的语法。
import 是用于将某个模块中导出的函数或对象、初始值导入到另一个模块中的语法。
它必须放在文件结尾,而且应用格局也是确定的,不容置疑。它不会将整个模块运行后赋值给某个变量,而是只抉择 import 的接口进行编译,这样在性能上比 require 好很多。require 是赋值过程,import 是解构过程
MDN import

import defaultExport from "module-name"; // 导出默认的 export default
import * as name from "module-name"; // 导出默认的 export default,并把所有的输入包裹到 obj 对象里
import {export1} from "module-name";// 导出名为 export1 的模块
import {export1 as alias1} from "module-name";// 导出名为 export1 的模块,并把 export1 的输入包裹到 alias1 对象里
import {export1 , export2} from "module-name";// 导出名为 export1、export2 的模块
import 'test.js'// 运行模块的全局代码,但实际上并不导入任何值
var promise = import("module-name");// 动静导入模块 

require

require 是 Commonjs 的标准,node 利用是由模块组成的,听从 commonjs 的标准。
用于引入模块、JSON、或本地文件。
它相当于 module.exports 的传送门,module.exports 前面的内容是什么,require 的后果就是什么,对象、数字、字符串、函数……再把 require 的后果赋值给某个变量,相当于把 require 和 module.exports 进行平行空间的地位重叠。

// 引入本地模块:const myLocalModule = require('./path/myLocalModule');

// 引入 JSON 文件:const jsonData = require('./path/filename.json');

// 引入 node_modules 模块或 Node.js 内置模块:const crypto = require('crypto');

不同之处

  • CommonJS 还是 ES6 Module 输入都能够看成是一个具备多个属性或者办法的对象;
  • default 是 ES6 Module 所独有的关键字,export default fs 输入默认的接口对象,import fs from ‘fs’ 可间接导入这个对象;
  • ES6 Module 中导入模块的属性或者办法是强绑定的,包含根底类型;而 CommonJS 则是一般的值传递或者援用传递。
退出移动版