美文网首页
03-全局变量的细节问题

03-全局变量的细节问题

作者: Young_Blood | 来源:发表于2016-07-27 10:00 被阅读3次
    <!DOCTYPE html>
    <html lang="en">
     <head> 
      <meta charset="UTF-8" /> 
      <title>Title</title> 
     </head> 
     <body> 
      <script type="text/javascript">
    
            // 在全局作用域当中 带var 和 不带 var的关系
            // 区别: 带var的可以进行预解释,所以在赋值的前边执行不会报错;
            //      不带var的不能预解释,在前边执行会报错
    
    //        console.log(num); // undefined
    //        var num = 12;
    //
    //        console.log(num2); // num2 is not defined (当前的变量不存在) 报错
    //        num2 = 12;
    
            // 关系:num2 = 12 -> 相当于给Window增加了一个叫做num2的属性名,属性值是12
            //     var num2 = 12 ->首先相当于给全局作用域增加了一个全局变量num,不仅如此他也相当于给Window增加了一个属性名num2,属性值为12
    //        var num = 12;
    //        console.log(num); // 12
    //
    //        num2 = 12;
    //        console.log(num2); // 12 window.num2
    
    //        var total = 0;
    //        function fn() {
    //            console.log(total); // undefined
    //            var total = 100;
    //        }
    //        fu();
    //        console.log(total); // 0
    
    
    //        var total = 0;
    //        function fn() {
    //            console.log(total); // 0
    //            total = 100;
    //        }
    //        fu();
    //        console.log(total); // 100
    
            // 私有作用域中出现的一个变量不是私有的,则望上级作用域中进行查找,上级没有则继续向上查找,一直找到window,如果Window下也没有?
            // 我们是获取值 : console.log(total) 报错了
            // 我们是设置值 : total = 100; -> 相当于给Window增加了一个属性名total 属性值为100
            function fn() {
                console.log(total); // total is not undefined
                total = 100;
            }
            fu();
            console.log(total); // 100
            // JS中如果不进行任何特殊处理情况下 上边的代码报错,下边的代码都不在执行
        </script>  
     </body>
    </html>
    

    相关文章

      网友评论

          本文标题:03-全局变量的细节问题

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