javascript - JavaScript 中 'export' 和 'export default' 的区别?

标签 javascript ecmascript-6

<分区>

两者到底有什么区别?我见过人们使用:

function foo () {
  ...
}

export default foo;

我见过:

function bar () {
  ...
}

export bar;

另外,你为什么要用一个而不是另一个?

最佳答案

最简单的方法是查看三种不同的 ES6 导入/导出样式在 CommonJS 中编译成什么。

// Three different export styles
export foo;
export default foo;
export = foo;

// The three matching import styles
import {foo} from 'blah';
import foo from 'blah';
import * as foo from 'blah';

大致编译为:

exports.foo = foo;
exports['default'] = foo;
module.exports = foo;

var foo = require('blah').foo;
var foo = require('blah')['default'];
var foo = require('blah');

(实际编译器输出可能不同)

关于javascript - JavaScript 中 'export' 和 'export default' 的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42478661/

相关文章:

javascript - 如何从常规字符串构造模板字符串?

javascript - 在异步 Mocha 测试中配置 JSDom

javascript - 在 Node.js 中使用 post 请求获取选中的单选按钮的值

javascript - 是否可以检测到 JavaScript 打开的窗口的位置何时发生变化?

javascript - 达到最大长度后 AngularJS 换行符

javascript - 单击时将图像中的数据属性获取到输入框中

javascript - 是否存在用于将对象属性的子集复制到新对象中的 ES6 速记?

javascript - Jquery:读取具有名称作为关联数组的表单输入文本

javascript - 如何使用 Php 中的 Foreach 或任何其他方式来实现此目标,将 jquery textBox 中的数据插入到 MySql 数据库中?

javascript - Ember CLI - 未捕获错误 : Could not find module ember?