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

    一.模块

    模块:将一个大程序拆分成互相依赖的小文件(js文件),再用简单的方法拼装起来。

    L : 从其他js文件中导入变量/函数

    <script type="module" src="fs.js"></script>
    // ES6加载模块
    import { stat, exists, readFile } from 'fs'; 
    

      

    二.import 和 export

         export规定模块的对外接口,import输入其他模块提供的功能。

          一个模块就是一个独立的文件。该文件内部的所有变量,外部无法获取。如果你希望外部能够读取模块内部的某个变量,就必须使用export关键字输出该变量

     1.export

    // profile.js
    export var firstName = 'Michael';
    

      或者:

    // profile.js
    var firstName = 'Michael';
    export {firstName};
    //改变名字:export { firstName as fname };

    2.import  

     加载模块:

    import {firstName, lastName, year} from './profile';
    //改名:import { lastName as surname } from './profile';
    //整体加载
    import * as circle from './circle';
    console.log('圆面积:' + circle.area(4));

      import命令具有提升效果,会提升到整个模块的头部,首先执行。

    3.export default

     模块指定默认输出:

    export default function () {
        console.log('foo');
    }
    
    //其他模块加载该模块时,import命令可以为该匿名函数指定任意名字。
    import customName from './export-default';
    customName(); // 'foo'
    

      

    三.ES6模块加载的实质

         1.ES6模块加载的机制,与CommonJS模块完全不同。CommonJS模块输出的是一个值的拷贝,而ES6模块输出的是值的引用。

         2.main.jslib.js输入变量obj,可以对obj添加属性,但是重新赋值就会报错。因为变量obj指向的地址是只读的,不能重新赋值,这就好比main.js创造了一个名为obj的const变量。

         3.export通过接口,输出的是同一个值。不同的脚本加载这个接口,得到的都是同样的实例。

      ---------------------------------------------------------------------------------------------------------------------------------------------------------

      参考链接:ES6新特性6:模块Module

  • 相关阅读:
    cz_health_day07
    cz_health_day06
    mysql索引底层原理
    cz_health_day05
    redis无法获取连接原因分析
    cz_health_day04
    cz_health_day03
    cz_health_day02
    cz_health_day01
    Spring学习
  • 原文地址:https://www.cnblogs.com/thing/p/10827179.html
Copyright © 2011-2022 走看看