1. 程式人生 > 其它 >新技術分享:在瀏覽器中使用ES6的import和export

新技術分享:在瀏覽器中使用ES6的import和export

技術標籤: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>

執行結果

在這裡插入圖片描述