zoukankan      html  css  js  c++  java
  • JS模块规范

    ES6标准发布后,module成为标准,标准的使用是以export指令导出接口,以import引入模块,但是在我们一贯的node模块中,我们采用的是CommonJS规范,使用require引入模块,使用module.exports导出接口。node的module遵循CommonJS规范,requirejs遵循AMD,seajs遵循CMD,虽各有不同,但总之还是希望保持较为统一的代码风格。
    ES6发布的module并没有直接采用CommonJS,甚至连require都没有采用,也就是说require仍然只是node的一个私有的全局方法,module.exports也只是node私有的一个全局变量属性,跟标准半毛钱关系都没有。require是运行时的,import它是编译时的,它必须放在文件开头,而且使用格式也是确定的。 
    在JavaScript ES6中,export default 和 export 区别:
    1.export与export default均可用于导出常量、函数、文件、模块等 
    2.你可以在其它文件或模块中通过import+(常量 | 函数 | 文件 | 模块)名的方式,将其导入,以便能够对其进行使用 
    3.在一个文件或模块中,export、import可以有多个,export default仅有一个 
    4.通过export方式导出,在导入时要加{ },export default则不需要 
    1、
    //demo1.js
    export const str = 'hello world'
    
    export function f(a){
        return a+1
    }

    对应的导入方式:

    //demo2.js
    import { str, f } from 'demo1' //也可以分开写两次,导入的时候带花括号

    import 需要知道demo.js所暴露的变量标识,否则无法加载

    2、

    //demo1.js
    export default const str = 'hello world'

    对应的导入方式:

    //demo2.js
    import str from 'demo1' //导入的时候没有花括号

    使用export default命令,为模块指定默认输出,这样就不需要知道所要加载模块的变量名

  • 相关阅读:
    P4568 [JLOI2011]飞行路线(分层图)
    打地鼠游戏(贪心)
    雷神领域(并查集真是个好东西)并查集+流氓dp
    P2934 [USACO09JAN]安全出行
    P2893 [USACO08FEB]修路
    P2894 [USACO08FEB]酒店Hotel
    P4145 上帝造题的七分钟2 / 花神游历各国
    P2579 [ZJOI2005]沼泽鳄鱼(邻接矩阵,快速幂)
    P2905 [USACO08OPEN]农场危机Crisis on the Farm(简单dp+麻烦“回溯”)
    day 2 上午 挂饰 背包
  • 原文地址:https://www.cnblogs.com/chenlogin/p/7482336.html
Copyright © 2011-2022 走看看