• 技术文章 >web前端 >前端问答

    javascript中export的意思是什么

    长期闲置长期闲置2022-01-12 15:22:59原创57

    在JavaScript中,export的意思是“导出”;JavaScript中模块内的所有声明都是本地的,利用export关键字可以导出模块,该命令可以出现在模块的任何位置,导出模块后其他JS文件就可以通过import命令加载该模块。

    本教程操作环境:windows10系统、javascript1.8.5版、Dell G3电脑。

    javascript中export的意思是什么

    默认情况下,JavaScript中在模块内的所有声明都是本地的,外部无法访问。如果需要公开模块中部分声明的内容,并让其它模块加以使用,这个时候就需要导出功能,最简单的方式是添加export关键字导出模块。

    可以导出的内容包括类、函数以及var、let和const修饰的变量。export命令可以出现在模块的任何位置,只要处于模块顶层就可以。如果处于块级作用域内,就会报错,import命令也是如此。

    使用export命令定义了模块的对外接口以后,其他 JS 文件就可以通过import命令加载这个模块。

    import命令具有提升效果,会提升到整个模块的头部,首先执行。由于import是静态执行,所以不能使用表达式和变量,这些只有在运行时才能得到结果的语法结构。

    一、default导入导出 default import/export

    每个模块仅有一个default的导出,导出内容可以是一个function、class,object等。因为这种方式被当做主要的导出内容,导入方式最为简单。

    // there is no semi-colon here
    export default function() {} 
    export default class {}
    //示例
    class A extends Component{
       ...
    }
    export default A;
    //对应的import示例。
    import A from './requireTest'
    //default export, 输入 lodash 模块
    import _ from 'lodash';
    //一条import语句中,同时输入默认方法和其他变量
    import _, { each } from 'lodash';
    //上述代码对应的export语句
    export default function (obj) {
      // ···
    }
    export function each(obj, iterator, context) {
      // ···
    }
    export { each as forEach };

    注意:一个模块仅仅只允许导出一个default对象,实际导出的是一个default命名的变量进行重命名,等价语句如下。所以import后可以是任意变量名称,且不需要{}。

    import any from './requireTest'
    import {default as any } from './requireTest'

    二、named 导入导出

    需要特别注意的是,export命令规定的是对外的接口,必须与模块内部的变量建立一一对应关系。另外,export语句输出的接口,与其对应的值是动态绑定关系,即通过该接口,可以取到模块内部实时的值。

    import命令接受一对大括号,里面指定要从其他模块导入的变量名。大括号里面的变量名,必须与被导入模块(profile.js)对外接口的名称相同。如果想为输入的变量重新取一个名字,import命令要使用as关键字,将输入的变量重命名。

    import后面的from指定模块文件的位置,可以是相对路径,也可以是绝对路径,.js路径可以省略。如果只是模块名,不带有路径,那么必须有配置文件,告诉 JavaScript 引擎该模块的位置。

    // profile.js
    //第一种export
    export var firstName = 'Michael';
    export function f() {};
    //第二种export,优先使用这种写法
    var firstName = 'Michael';
    export {firstName};
    function f() {}
    export {f};
    //main.js
    import { firstName, f } from './profile';
    import { firstName as surname } from './profile';

    三、重命名导入导出

    export { myFunction }; // exports a function declared earlier
    export const foo = Math.sqrt(2); // exports a constant

    import不同模块的导出内容时,必须保持命名的唯一性。此时可以用重命名来解决,包括以下两类。

    //导出的时候重命名
    function v1() { ... }
    function v2() { ... }
    export {
          v1 as streamV1,
          v2 as streamV2,
          v2 as streamLatestVersion  //可以用两个不同的名称导出相同的值
    };
    //导入的时候重命名
    // 这两个模块都会导出以`flip`命名的东西。同时导入两者,需要将其中一个的名称改掉。
    import {flip as flipOmelet} from "eggs.js";
    import {flip as flipHouse} from "real-estate.js";

    四、export和import的复合写法

    如果在一个模块之中,先输入后输出同一个模块,import语句可以与export语句写在一起。

    export { foo, bar } from 'my_module';
    // 等同于
    import { foo, bar } from 'my_module';
    export { foo, bar };

    【相关推荐:javascript学习教程

    以上就是javascript中export的意思是什么的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:javascript 前端 html
    上一篇:javascript中有list类型吗 下一篇:javascript怎样控制不能输入汉字

    相关文章推荐

    • java javascript是什么• javascript怎么将数字转为Hex(16进制)• javascript如何判断控件中输入的数据为数值类型• JavaScript中断点的类型有哪些• javascript怎么隐藏option选项

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网