zoukankan      html  css  js  c++  java
  • 页面中多个script块之间的关系

     一:函数声明与函数定义表达式在函数调用间的区别

    <script type="text/javascript">  
    
        doA();
    
        var doA = function(argument) {
            console.log('执行了')
        }
    
    </script>

    结果:

    <script type="text/javascript">  
     
        doA();
        function  doA(argument) {
            console.log('执行了')
        }
    
    </script>  

    结果:执行了

    结论:函数声明在编译期处理了函数声明,但是函数定义表达式并没有初始化与赋值。类似声明了一个变量,但是变量没有赋值。

    二:多个script之间对于变量的关系

    JS是按照代码块来进行编译和执行的,代码块间相互独立,但变量和方法共享。

    <script type="text/javascript">  
        function  doA(argument) {
            console.log('执行了')
        }
    </script>  
    <script type="text/javascript">
         doA();
    </script>

    结果:执行了

    **如果两个函数块之间更换位置,那就会报错。

    <script type="text/javascript">  
       var a = 0;
    </script>  
    <script type="text/javascript">
        console.log(a);
    </script>

    结果:0

    **如果两个函数块之间更换位置,那就会报错。

    三:这样就造成了一个问题,当我们一个页面中引入多个js的时候,可能会造成全局变量的污染

    我们可以这么做来避免:

    <script type="text/javascript">  
       var a = 0;
    </script>  
    <script type="text/javascript">
        ;(function(){
            var a = 1;
            console.log(a);
        })();
        console.log(a);
    </script>
    结果:1
              0
     
    或者我们直接用函数来做:
    <script type="text/javascript">  
    function  bigDoA(argument) {
        var a = 0;
        //其他代码
    } 
    </script>  
    <script type="text/javascript">
    function  bigDoB(argument) {
        var a = 0;
        //其他代码
    }
    </script>
  • 相关阅读:
    前端内容转译html
    检查数据接口返回数据合法性
    接口数据一致性校验工具
    白盒测试——私有接口测试
    服务端用例设计的思(tao)路!
    服务端的性能测试(一)
    Android移动网络如何抓取数据包
    使用loadrunner进行压力测试遇到的问题总结
    我的天呐,小明竟然被程序猿哥哥追着打
    python处理文本文件
  • 原文地址:https://www.cnblogs.com/zqzjs/p/5497955.html
Copyright © 2011-2022 走看看