Heim  >  Fragen und Antworten  >  Hauptteil

javascript – Der Ausgabewert des ES6-Modulladeexports ist etwas unklar


Warum wird dieser Fehler gemeldet


Warum ist das in Ordnung? Welche Funktion haben diese geschweiften Klammern? Ist das die Syntax?

淡淡烟草味淡淡烟草味2663 Tage vor852

Antworte allen(3)Ich werde antworten

  • 怪我咯

    怪我咯2017-07-05 10:55:10

    在es6标准没出来之前,export啥,require就是啥。

    以nodejs为例

    // ./fk.js
    export 'fk';
    
    // ./main.js
    var fk = require('./fk');
    console.log(fk); // output "fk"

    你看,这一点都不“模块化”,既然是模块导入进来就应该要有数值,有函数,有车有驴有火锅才行嘛。

    那怎么办呢?
    标注规定,导出的所有内容必须都有“名字”,你起个别名也可以,反正要有名字!

    第一种起名字的方法

    export var/let/const 名字=值

    第二种起名字的方法

    var/let/const 变量=值
    export {变量} 或 export {变量 as 别名}

    第三种起名字的方法

    export default 值

    第一张图里的第二个方法之所以报错,是因为你不用大括号括起来,在编译的时候m早就不知道叫什么了,不知道叫什么就没有名字,起不了名字就不能导出。

    完。

    Antwort
    0
  • typecho

    typecho2017-07-05 10:55:10

    看文档 export on MDN

    一共就这么几种形式

    export { name1, name2, …, nameN };
    export { variable1 as name1, variable2 as name2, …, nameN };
    export let name1, name2, …, nameN; // also var
    export let name1 = …, name2 = …, …, nameN; // also var, const
    
    export default expression;
    export default function (…) { … } // also class, function*
    export default function name1(…) { … } // also class, function*
    export { name1 as default, … };
    
    export * from …;
    export { name1, name2, …, nameN } from …;
    export { import1 as name1, import2 as name2, …, nameN } from …;

    你写的两种形式都不包含在内……具体每种形式是什么意思,还是看文档去吧!

    Antwort
    0
  • 给我你的怀抱

    给我你的怀抱2017-07-05 10:55:10

    https://developer.mozilla.org...

    这种问题直接阅读文档就行了。而且你这个图不是从阮一峰的文章里扒过来的?原文就有清晰的说明

    需要特别注意的是,export命令规定的是对外的接口,必须与模块内部的变量建立一一对应关系。

    上面两种写法都会报错,因为没有提供对外的接口。第一种写法直接输出1,第二种写法通过变量m,还是直接输出1。1只是一个值,不是接口。

    Antwort
    0
  • StornierenAntwort