zoukankan      html  css  js  c++  java
  • 15.ES6模块

    概述

    在 ES6 前, 实现模块化使用的是 RequireJS 或者 seaJS(分别是基于 AMD 规范的模块化库,  和基于 CMD 规范的模块化库)。

    ES6 引入了模块化,其设计思想是在编译时就能确定模块的依赖关系,以及输入和输出的变量。

    ES6 的模块化分为导出(export) @与导入(import)两个模块。

    特点

    ES6 的模块自动开启严格模式,不管你有没有在模块头部加上 use strict;。

    模块中可以导入和导出各种类型的变量,如函数,对象,字符串,数字,布尔值,类等。

    每个模块都有自己的上下文,每一个模块内声明的变量都是局部变量,不会污染全局作用域。

    每一个模块只加载一次(是单例的), 若再去加载同目录下同文件,直接从内存中读取。

    export 与 import

    基本用法

    模块导入导出各种类型的变量,如字符串,数值,函数,类。

    • 导出的函数声明与类声明必须要有名称(export default 命令另外考虑)。 
    • 不仅能导出声明还能导出引用(例如函数)。
    • export 命令可以出现在模块的任何位置,但必需处于模块顶层。
    • import 命令会提升到整个模块的头部,首先执行。
     // CommonJS和AMD
            // ES6 module 
            import Person,{name,age,sayName} from './modules/index.js'
            // import * as f from './modules/index.js'
            // console.log(Person);
            const p = new Person();
            p.sayAge();
            // console.log(f.default);
            // console.log(name,age,sayName());
    

      

  • 相关阅读:
    php反射
    html video api控件总结
    linux CentOS7.2安装ffmpeg-3.0.2
    2019年7月12日星期五(C语言)
    2019年7月11日星期四(C语言)
    2019年7月10日星期三(C语言)
    2019年7月9日星期二(C语言)
    2019年7月8日星期一(C语言)
    2019年7月5日星期五(C语言)
    2019年7月4日星期四(C语言及LINUX命令)
  • 原文地址:https://www.cnblogs.com/sunny666/p/12986749.html
Copyright © 2011-2022 走看看