gpt4 book ai didi

javascript - 从 MDN 文档中导入 ES6 中的语句

转载 作者:行者123 更新时间:2023-11-29 10:28:59 24 4
gpt4 key购买 nike

我正在浏览 Firefox import statements.

他们已经展示了这样的某些导入声明

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";

但是没有添加示例来帮助区分某些示例,而且它们的示例也有点模糊。

从文档中,有很多东西对我来说没有意义。例如,namedefaultExport

有何不同

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

他们给出的解释:

The name parameter is the name of the "module object" which will be used as a kind of namespace to refer to the exports.

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

第二个:

import { export as alias } from "module-name";

另外,假设我们有多个需要导出的函数

function abc1 () {
}

function abc2 () {
}

这是正确的导出方式吗?

export abc1;
export abc2;

然后如果我们导入,我们如何将变量附加到它?这就是像这样的声明的用武之地吗?

import { export as alias } from "module-name";

最佳答案

给定这个模块 module-name:

// 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 进行测试的情况:


导入默认导出

// import defaultExport from "module-name";
import fizzbuzz from "module-name";

因此只有默认导出可用:

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

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

import * as name from "module-name";

所有导出都可用,但附加到标识为 name 的对象:

  • foo 可用
  • bar 可用
  • name.foo 可用(尽管您认为它会可用)
  • name.bar可用
  • console.log(hello world) 将运行

导入已识别的导出

// import { export } from "module-name";
import { bar } from "module-name"

仅标识的导出可用:

  • foo 可用
  • bar可用
  • console.log(hello world) 将运行

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

// import { export as alias } from "module-name";
import { bar as mybar } from "module-name";

只有标识的导出可用,并且只能作为标识的别名:

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

导入默认导出并使用*通配符

// 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) 将运行

没有实际确定的进口

import "module-name";

模块已加载,但导入的模块中实际上没有可用的内容。这意味着文件运行但没有暴露任何内容

  • foo 可用
  • bar 可用
  • console.log(hello world) 将运行

关于javascript - 从 MDN 文档中导入 ES6 中的语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51215691/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com