我真的不明白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
当然,我知道我错过了一个重要的部分,这就是为什么我正在寻找一些解释或链接来解释我需要学习的东西,因为我找不到任何东西:)
答案 0 :(得分:1)
如果您使用常规脚本代码并首先放置lib.js
然后main.js
,则ES5版本肯定会在浏览器中运行。
<head>
<script src="./lib.js"></script>
<script src="./main.js"></script>
</head>
为什么它适用于ES5中的浏览器?
function square()
和function diag()
是全局函数,可以从任何地方访问:(
与ES6版本有何不同?
lib.js
功能不会泄露给全世界,只会向进口它们的人提供。
例如:
import { square, diag } from './lib';
导入模块然后对其进行分解,它只能访问square
和diag
,但不能访问sqrt
如上所述here,您还可以导入完整的lib模块。 您还可以导入完整的模块:
import * as lib from 'lib';
console.log(lib.square(11)); // 121
console.log(lib.diag(4, 3)); // 5