美文网首页
变量使用es6模块引入与传统引入对比

变量使用es6模块引入与传统引入对比

作者: John_Phil | 来源:发表于2020-04-03 11:33 被阅读0次

    使用传统方式引入
    aaa.js

    var a=10;
    setTimeout(function() {a=20}, 1000);
    

    bbb.js

    function b(){
        console.log(a)
        setTimeout(function() {console.log(a)}, 1000);
    }
    

    test.html

    <script src="aaa.js"></script>
    <script src="bbb.js"></script>
    <script>
                b();
                
    </script>
    
    结果

    使用es6模块引入
    aaa.js

    var a=10;
    setTimeout(function() {a=20}, 1000);
    export {a} 
    
    

    bbb.js

    import { a } from "./aaa.js";
    function b(){
        console.log(a)
        setTimeout(function() {console.log(a)}, 1000);
    }
    export{a,b};
    

    test.html

    <script type="module">
                  import {a,b } from "./bbb.js";
                b();
            </script>
    
    结果

    es6模块化引入可以避免很多不必要的麻烦
    传统的引入方式 变量a 定义在前,后续都会使用 a变量
    而使用模块导入 a变量在aaa模块中, 如果不引入到b中 b是无法访问。
    可以使我们的变量指向更明确。

    比如
    aaa.js

    var a=10;
    setTimeout(function() {a=20}, 1000);
    export {a} 
    

    bbb.js

    function b(){
        console.log(a)
        setTimeout(function() {console.log(a)}, 1000);
    }
    
    export{b};
    

    test.html

            <script type="module">
                  import { a } from  "./aaa.js";
                  import { b } from "./bbb.js";
                        b();
            </script>
    
    结果报错

    相关文章

      网友评论

          本文标题:变量使用es6模块引入与传统引入对比

          本文链接:https://www.haomeiwen.com/subject/otzcphtx.html