import与require区别

命令 规范 调用 本质 特色
require CommonJS规范 运行时调用 赋值过程 非语言层面的标准。 社区方案,提供了服务器/浏览器的模块加载方案。只能在运行时肯定模块的依赖关系及输入/输出的变量,没法进行静态优化。
import es6+的语法标准 编译时调用 解构过程 语言规格层面支持模块功能。支持编译时静态分析,便于JS引入宏和类型检验。动态绑定

好比分析这一段 :es6

import { readFile } from 'fs';

js 代码被 JavaScript 引擎编译时, 并将上面 fs 模块的属性 readFile 指向对应模块的 export const readFile() 方法上,注意这里只是作了指针指向,而并非执行 fs 模块。当执行 readFile() 时,就会去找指针指向的代码并执行。浏览器

区分于CommonJS模块:服务器

let { stat, exists, readFile } = require('fs');

其实上面代码是先执行 fs 模块,获得一份代码拷贝,再获取对应的属性或方法的。优化

相关文章
相关标签/搜索