欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

面试-浏览器、Node环境下的导入导出

程序员文章站 2022-06-09 17:58:03
...

模块化导入导出

模块: 一个JS文件就是一个模块.

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

ES6阮一峰文档:模块化语法

本小节介绍的是ES6新增的模块化语法, 基于浏览器环境

导出有3种方式, 导入有2种方式, 有的导出和导入有限制, 以下根据使用讲述

  1. 使用方式一:(其中的使用方式可以混和使用)

    导出:

// 文件demo-01.js
//1. 导出(写法一) : 变量声明 与 导出 分开写
let userName = '卡卡西'
let age = 25
let sayHi = function(){
   return 666
}

export {userName,age,sayHi}
// 文件demo-01.js
// 2. 导出(写法二) : 变量声明 与 导出 一起写
export let name = '张三'
export let n_age = 18
export let sayHello = function(){
    console.log(666);
} 

导入:

<body>
    <!-- 
        type="module": 允许执行导入导出操作 
    -->
    <script type="module">
        // 导入 demo-01.js 模块内容
        import {userName, age, sayHi} from './demo-01.js'
        console.log(userName)   // -> 卡卡西
        console.log(age)        // -> 25
        console.log(sayHi())    // -> 666

        // 导入 demo-02.js 模块内容
        import {n_age as var1, name as var2} from './demo-02.js'
        console.log(var1)  // -> 张三
        console.log(var2)   // -> 18
    </script>
</body>
  • 导出的内容, 在使用的时候不一定都要导入, 使用解构赋值语法时, 变量名必须和导出时一致

  • as 关键字作为别名使用

  1. 使用方式二(使用方式不能和其他方式混用)
  • export default

    export let name = '张三'
    export let age = 18
    export let sayHi = function(){
        console.log(666);
    } 
    
    let sex = '男'
    export default sex;
    
    import {name as a,age as b,sayHi as c} from "./goods.js"
    import sex from "./goods.js"
    



其他环境下的的导入导出

Node环境下:

导出: module.export { aa }

导入: let aa = require(“路径”)

浏览器环境下:

导出: export 、 export default

导入: import xxx from “路径”