javascript - 不懂export javascript ES6

标签 javascript export ecmascript-6

我不太明白 ES6 中的 export 关键字是什么。因为当我做像第一个例子 here 这样的事情时,但在 ES5 中不导出任何内容,它仍然可以工作。

//------ lib.js ------

var sqrt = Math.sqrt;
function square(x) {
    return x * x;
}
function diag(x, y) {
    return sqrt(square(x) + square(y));
}

//------ main.js ------

console.log(square(11)); // 121
console.log(diag(4, 3)); // 5

所以我当然知道我错过了很大一部分,这就是为什么我正在寻找一些解释或链接来解释我需要学习的内容,因为我没有找到任何东西:)

最佳答案

如果您使用常规脚本标签并首先放置 lib.js 然后放置 main.js,ES5 版本肯定可以在浏览器中运行。

<head>
  <script src="./lib.js"></script>
  <script src="./main.js"></script>
</head>

为什么它可以在 ES5 的浏览器上运行?

function square()function diag() 是全局函数,可以从任何地方访问:(

例如来自 Chrome 开发控制台。 enter image description here

与 ES6 版本有何不同?

lib.js 函数不会泄露到外界,并且仅可供导入它们的人使用。

例如:

import { square, diag } from './lib';

这会导入模块,然后分解它,它只能访问 squarediag,但不能访问 sqrt

如上所述here您还可以导入完整的 lib 模块。 您还可以导入完整的模块:

import * as lib from 'lib';
console.log(lib.square(11)); // 121
console.log(lib.diag(4, 3)); // 5

关于javascript - 不懂export javascript ES6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32525094/

相关文章:

javascript - 如何为单独的 div 添加 javascript?

ios - 导出联系人到iphone通讯录?

javascript - 是否可以在图像将渲染的 React 组件之外预加载图像?

javascript - material-ui 中的高级样式

javascript - React中如何将一个函数的返回值获取到另一个类中

php - 当我将查询结果导出到 Excel CSV 时,始终显示 HTML 代码

javascript - ES6从变量解构

javascript - ES2015 类是 "not autobind"吗?

javascript - jQuery 验证 : Retaining error after validation

javascript - Node.js 模块的正确用法