不懂出口javascript ES6

时间:2015-09-11 13:50:03

标签: 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

当然,我知道我错过了一个重要的部分,这就是为什么我正在寻找一些解释或链接来解释我需要学习的东西,因为我找不到任何东西:)

1 个答案:

答案 0 :(得分:1)

如果您使用常规脚本代码并首先放置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