JS import and export

本文探讨了模块化编程的兴起,如何解决全局命名空间污染问题,以及OBJECTS和立即调用的函数表达式的应用。通过实例展示export和import的使用,强调了模块化的优势,如避免污染、严格模式和模块加载效率。还介绍了多种导入方式,包括默认导出和按名导入,并总结了模块化的重要性和适用场景。
摘要由CSDN通过智能技术生成
  1. 模块化出现前
    污染全局命名空间
    依赖管理, 必须从上到下一次加载

  2. 后续方案
    OBJECTS
    立即调用的函数表达式

  3. export 例子

    export function sum(x, y) {
       return x + y;
    }
    
    export function difference(x, y) {
      return x - y;
    }
    
    import { sum, difference } from "./functions.js";
    
  4. HTML中使用

    <script type="module" src="functions.js"></script>
    <script type="module" src="script.js"></script>
    
  5. 模块化有点

    模块不会向全局(window)作用域添加任何内容。
    模块始终处于严格模式。
    在同一文件中引用同一模块多次将无效,因为模块只会被执行一次。
    模块需要运行在服务器环境。

  6. 多种引入方式

    export function sum() {}
    export function difference() {}
    

    方式一:

    import { sum, difference } from "./functions.js";
    

    方式二:

    import { sum as add, difference as subtract } from "./functions.js";
    add(1, 2); // 3
    

    方式三:

    import * as mathFunctions from "./functions.js";
    mathFunctions.sum(1, 2); // 3
    mathFunctions.difference(10, 3); // 7
    
  7. 默认导出
    模块也可以使用关键字 default 包含默认导出。默认导出不是使用大括号导入,而是直接导入到命名标识符中

    export default function sum(x, y) {
     return x + y;
     }
    
     import sum from "./functions.js";
    
     sum(1, 2); // 3
    

    按命名导出和默认导出可以同时使用

    export const length = 10;
    export const width = 5;
    
    export default function perimeter(x, y) {
      return 2 * (x + y);
    }
    

    我们可以使用以下代码导入这些变量和默认函数:

    import calculatePerimeter, { length, width } from "./functions.js";
    
    calculatePerimeter(length, width); // 30
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值