• module.exports exports export export.default import require之间的关系


    module.exports exports export export.default import require这些是nodejs中模块应用常用的关键词,比较容易混淆,今天从网站收集了一些资料,在此总结一下。

    在讲具体情况前,先讲解下CommonJs、ES6和nodejs之间的关联,这样更加利于区分理解标题涉及的内容。

    CommonJS

    是个规范这个规范中定义了许多API,用于普通应用程序(主要指非浏览器的应用)使用的API,从而填补了这个空白。它的终极目标是提供一个类似Python,Ruby和Java标准库。这样的话,开发者可以使用CommonJS API编写应用程序,然后这些应用可以运行在不同的JavaScript解释器和不同的主机环境中

    ES6

    可直接理解为javascript的增强版(增加了新的规范、特性与功能)或最新版,两者之间虽然略有差异,但也可以忽略(不要在意这些细节,呵呵),就有点类似于JAVA8与JAVA语言的关系.

    Nodejs支持CommonJS和ES6两种规范。

    module.exports/exports(导出模块)、require(导入模块是属于CommonJS模块规范!

    export/export default(导出模块import(导入模块是属于ES6语法

    说到这里,对于上面这些模块操作关键字应该有了初步的了解。那么问题来了

    1.CommonJS模块规范中module.exports和exports有什么区别

    exports:首先对于本身来讲是一个变量(对象),它不是module的引用,它是{}的引用,它指向module.exports的{}模块
    module.exports:首先,module是一个变量,指向一块内存,exports是module中的一个属性,存储在内存中,然后exports属性指向{}模块。

    exports = module.exports = {};

    所以module.exportsexports的区别就是var a={}; var b=a;,a和b的区别

    以上问题答案参考自(https://www.cnblogs.com/wbxjiayou/p/5767632.html

    2.ES6中export和export default有什么区别

    export其实和export default就是写法上面有点差别,一个是导出一个个单独接口,一个是默认导出一个整体接口

    1、export与export default均可用于导出常量、函数、文件、模块等
    2、你可以在其它文件或模块中通过import+(常量 | 函数 | 文件 | 模块)名的方式,将其导入,以便能够对其进行使用
    3、在一个文件或模块中,export、import可以有多个,export default仅有一个
    4、通过export方式导出,在导入时要加{ },export default则不需要

    export用法:
    
    导出文件 testa.js
     function functionA(){...}
     var val1 ='test';
    
    export {functionA,val1}
    
    导入文件使用:
    import{functionA,a} from './testa'  或者
    import{functionA} from './testa'
    
    
    export default用法
    导出文件testa.js
    export default function functionA(){}
    
    导入文件:
    import functionA from  './testa'
    

    以上是初浅的区别解释,在此留个问题后续深入了解:这些关键字内部如何实现的,更深层次的区别在哪 ?

     

    以上内容参考了作者:https://www.cnblogs.com/Nutrient-rich/p/7047877.html

  • 相关阅读:
    MapFile检索序列文件
    MapFile检索序列文件
    单词统计以序列格式输出
    单词统计以序列格式输出
    序列文件的读取和写入
    序列文件的读取和写入
    TypeError: list indices must be integers or slices, not tuple
    TypeError: list indices must be integers or slices, not tuple
    IndexError: tuple index out of range
    十四、数据库设计三范式
  • 原文地址:https://www.cnblogs.com/chaichai/p/9381387.html
Copyright © 2020-2023  润新知