不明白 export javascript ES6
Don't understand export javascript ES6
我不太明白 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
所以我当然知道我遗漏了很大一部分,这就是为什么我正在寻找一些解释或 link 来解释我需要学习的内容,因为我没有找到任何东西:)
如果你用正楷标签,先lib.js
再main.js
.
,ES5版本肯定能在浏览器中运行
<head>
<script src="./lib.js"></script>
<script src="./main.js"></script>
</head>
为什么在ES5的浏览器上可以?
function square()
和 function diag()
是全局函数,可以从任何地方访问:(
例如来自 Chrome 开发控制台。
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
我不太明白 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
所以我当然知道我遗漏了很大一部分,这就是为什么我正在寻找一些解释或 link 来解释我需要学习的内容,因为我没有找到任何东西:)
如果你用正楷标签,先lib.js
再main.js
.
<head>
<script src="./lib.js"></script>
<script src="./main.js"></script>
</head>
为什么在ES5的浏览器上可以?
function square()
和 function diag()
是全局函数,可以从任何地方访问:(
例如来自 Chrome 开发控制台。
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