首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从MDN文档导入ES6语句

从MDN文档导入ES6语句
EN

Stack Overflow用户
提问于 2018-07-06 18:05:13
回答 2查看 996关注 0票数 3

我正在通过Firefox导入语句。

他们已经显示了如下的某些导入语句

代码语言:javascript
运行
复制
import defaultExport from "module-name";
import * as name from "module-name";
import { export } from "module-name";
import { export as alias } from "module-name";
import { export1 , export2 } from "module-name";
import { export1 , export2 as alias2 , [...] } from "module-name";
import defaultExport, { export [ , [...] ] } from "module-name";
import defaultExport, * as name from "module-name";
import "module-name";

但是还没有添加一些例子来帮助区分一些人,他们的例子也有点模糊。

从医生的角度来看,有很多事情对我来说没有意义。例如,名称defaultExport有何不同?

虽然默认导出对我来说是有意义的,但名称的定义有点难以理解。

他们所作的解释:

name参数是“模块对象”的名称,它将用作引用导出的命名空间。

从上面的语法:import "module-name";

第二:

代码语言:javascript
运行
复制
import { export as alias } from "module-name";

另外,如果我们有需要导出的多个函数

代码语言:javascript
运行
复制
function abc1 () {
}

function abc2 () {
} 

这是正确的出口方式吗?

代码语言:javascript
运行
复制
export abc1;
export abc2; 

然后,如果我们导入,我们将如何附加变量到它?像这样的陈述就是在这里出现的吗?

代码语言:javascript
运行
复制
import { export as alias } from "module-name";
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-06 18:29:24

给定此模块module-name

代码语言:javascript
运行
复制
// module-name.js
export default function foo(){ console.log("foo");}
export function bar(){ console.log("bar");}
console.log("hello world");

考虑在node.js v9.11.1中使用node --experimental-modules some-importer.mjs命令进行测试的以下情况

导入default export

代码语言:javascript
运行
复制
// import defaultExport from "module-name";
import fizzbuzz from "module-name";

因此,只有默认的导出可用:

  • fizzbuzz (即foo)是可用的
  • bar 不可用
  • console.log(hello world)将被运行

使用*通配符导入所有导出

代码语言:javascript
运行
复制
import * as name from "module-name";

所有导出都可用,但附加到一个标识为name的对象上。

  • foo 不可用
  • bar 不可用
  • name.foo不可用的(尽管你认为它会)
  • name.bar是可用的
  • console.log(hello world)将被运行

进口已确定的出口

代码语言:javascript
运行
复制
// import { export } from "module-name";
import { bar } from "module-name"

只有已确定的出口:

  • foo 不可用
  • bar是可用的
  • console.log(hello world)将被运行

将已识别的导出导入为别名

代码语言:javascript
运行
复制
// import { export as alias } from "module-name";
import { bar as mybar } from "module-name";

只有标识的导出可用,只有作为(标识的别名):

  • foo 不可用
  • bar 不可用
  • mybar (即bar)是可用的
  • console.log(hello world)将被运行

导入default export并使用*通配符

代码语言:javascript
运行
复制
// import defaultExport, * as name from "module-name";
import fizzbuzz, * as name from "module-name";

模块中的默认项可以引用为defaultExport,所有其他导出项都附加到name

  • fizzbuzz (即foo)是可用的
  • bar 不可用
  • name.bar是可用的
  • console.log(hello world)将被运行

没有确定的实际进口

代码语言:javascript
运行
复制
import "module-name";

模块已加载,但导入的模块中实际上没有可用的。这意味着该文件正在运行,但没有公开任何文件。

  • foo 不可用
  • bar 不可用
  • console.log(hello world)将被运行
票数 3
EN

Stack Overflow用户

发布于 2018-07-06 18:17:01

namedefaultExport有什么不同?

name是一个对象,它将所有导出的值作为导出的键/值保存,但默认导出除外,该导出将在defaultExport中。如果要从文件中导出以下内容:

代码语言:javascript
运行
复制
export default function main() {}
export function helper1() {}
export function helper2() {}

然后可以导入main作为默认导入:

代码语言:javascript
运行
复制
import main from "file";

不会引进帮手的。为此,您将使用* as

代码语言:javascript
运行
复制
import * as helpers from "file";
helpers.helper1();

然后,如果我们导入,我们将如何附加变量到它?

它们被附加到与其导出的名称相同的位置,因此只能导入上述帮助程序中的一个:

代码语言:javascript
运行
复制
import { helper1 } from "file";
helper1();

如果您想重命名该导入,因为它是错误的/冲突的,那么as语法就会出现:

代码语言:javascript
运行
复制
import { helper1 as someOther } from "file";
someOther();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51215691

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档