新技術分享:在瀏覽器中使用ES6的import和export
阿新 • • 發佈:2020-12-14
技術標籤:javascript
前言
之前一直通過node使用ES6的import和export,但是沒想到現在瀏覽器也支援了。迫不及特地寫了一個小示例體驗了一把,覺得還可以。詳細可以見這篇博文: https://segmentfault.com/a/1190000014342718 。’
像傳統js的載入方式一樣,模組化的js
也可以有2
種使用方式,如下所示。但注意這裡的 type=“module”
, 這是傳統載入方式和按模組方式載入的區別。
(1)第一種:引入外部js
<script src="xxx.js" type="module"> </script>
(2)第二種:在html中直接書寫
<script type="module">
import xxx from "xxx.js";
// your code ...
</script>
注意事項
使用此方式引用的js會有跨域的問題
示例
math.js
export function add(a, b){
return a + b;
}
export function sub(a, b){
return a - b;
}
export function mul(a, b){
return a * b;
}
export function div(a, b){
return a / b;
}
export function mod(a, b){
return a % b;
}
export default {
add,
sub,
mul,
div,
mod
}
index.js
import math, {add, div} from './math.js';
export function sum(nums){
let s = 0;
for(let num of nums) {
s = add(s, num);
}
return s;
}
export function avg(nums){
const s = sum(nums);
return div(s, nums.length > 0 ? nums.length : 1);
}
export default {
sum,
avg
}
index.html
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<!--script src="./index.js" type="module"></script-->
<script type="module" async>
import R from "./index.js";
import math, {sub, mul, mod} from "./math.js";
console.log(R.sum([1, 2, 3, 4, 5, 6, 7, 8, 9 ,10]))
console.log(R.avg([1, 2, 3, 4, 5, 6, 7, 8, 9 ,10]))
console.log(R.avg([]))
console.log(sub(100, 33));
console.log(mul(100, 33));
console.log(mod(100, 33));
</script>
</body>
</html>