美文网首页
2、require 和 import 的区别?

2、require 和 import 的区别?

作者: 派大星的博客 | 来源:发表于2019-09-25 22:27 被阅读0次

    【转载出处】


    1⃣️、遵循的规范不同

    1.require/exports 是CommonJS的一部分

    2.import/export 是ES6新规范

    2⃣️、出现时间不同

    CommonJS 作为 Node.js 的规范,一直沿用至今。由于 npm 上 CommonJS 的类库众多,以及 CommonJS 和 ES6 之间的差异,Node.js 无法直接兼容 ES6。所以现阶段 require/exports 仍然是必要且是必须的。

    3⃣️、形式不同

    //. require/exports 的用法只有以下三种:
    
    const fs = require('fs');
    exports.fs = fs;
    module.exports = fs;
    
    //. import/export的写法就多种多样
    
    import fs from 'fs';
    import {default as fs} from 'fs';
    import * as fs from 'fs';
    -----------------------------
    export default fs;
    export const fs;
    export * from 'fs';
    

    4⃣️、本质上的不同

    1.CommonJS还是ES6 Module 输出都可以看成是一个具备多个属性或者方法的对象;

    2.default 是ES6 Module所独有的关键字,export default 输出默认的接口对象,import from 'fs'可直接导入这个对象;

    3.ES6 Module中导入模块的属性或者方法是强绑定的,包括基础类型;而 CommonJS 则是普通的值传递或者引用传递。


    关于本质

    • require的结果就是对象、数字、字符串、函数等,再把require的结果赋值给某个变量
    • 目前所有的引擎都还没有实现import,我们在node中使用babel支持ES6,也仅仅是将ES6转码为ES5再执行,import语法会被转码为require

    5⃣️、关于调用

    require的引用可以在代码的任何地方。
    import语法规范上是放在文件开头。


    对比图.png

    相关文章

      网友评论

          本文标题:2、require 和 import 的区别?

          本文链接:https://www.haomeiwen.com/subject/qsnwuctx.html