zoukankan      html  css  js  c++  java
  • 作用域

     1 <!DOCTYPE html>
     2 <html>
     3     <head>
     4         <meta charset="UTF-8">
     5         <title></title>
     6     </head>
     7     <body>
     8         <script type="text/javascript">
     9             
    10             //当函数内部出现变量不带var
    11             //1、先看函数内部有没有定义var这个变量,如果有就是局部变量
    12             //2、如果函数内部没有定义var这个变量,找形参,形参如果有,当做局部变量处理
    13             //3、如果形参也没有,那么找全局,全局有,那么就是在操作全局变量
    14             //4、如果全局也没有,那么相当于在全局定义了一个变量(全局变量)
    15             
    16             var a = 10;
    17             var b = 20;
    18             var c = 30;
    19             var d = 40;
    20             function fn(){
    21                 var a = 100;
    22                 var b = 200;
    23                 var c = 300;
    24                 d = 400;//隔山打牛,把全局修改为400
    25                 e = 500
    26                 console.log(a,b,c,d); //100 200 300 400
    27                 console.log(e);// 500 函数调用之后,这一行相当于全局定义了一个变量
    28             }
    29             
    30             // console.log(e);//调用之前,e还没有定义呢,
    31             fn();
    32             console.log(a,b,c,d,e); //10 20 30 400 500
    33             console.log(e);//函数调用之后,这一行相当于全局定义了一个变量
    34             
    35         </script>
    36     </body>
    37 </html>

    函数作用域面试题

     1 <!DOCTYPE html>
     2 <html>
     3     <head>
     4         <meta charset="UTF-8">
     5         <title></title>
     6     </head>
     7     <body>
     8         <script type="text/javascript">
     9             // var num = 10;
    10             // function fun() {
    11       //             var num = 20;
    12                       
    13       //             fun2();
    14             // }
    15             
    16             // function fun2() {  //函数定义时候作用域就定死了,函数的作用域和调用没关系
    17             //     console.log(num);//10  
    18             // }
    19             // fun();
    20             
    21             
    22             var num = 10;
    23             function fun() {
    24                 var num = 20;
    25                     
    26                 function fun2() {
    27                     console.log(num);//20
    28                 }
    29                 
    30                 fun2();
    31             }
    32             
    33             
    34             fun();
    35             
    36             //函数定义时候作用域就定死了,调用的时候作用域链顺着作用域去查找,函数的作用域和调用没关系
    37         </script>
    38     </body>
    39 </html>

    //作用域链:
    //和作用域完全不是一个东西
    //作用域链描述的是程序查找变量的过程
    //首先在自己的作用域当中去查找,如果查找不到,去到上级作用域去查找,查找就用
    //查不到继续往上查找,直到找到真正的全局,找到就用,找不到报错(引用错误,这个变量没定义)

    //作用域链的顶端 一定是全局;
    //作用域链是真实存在的,我们后期是可以看到的
    //作用域是函数定义好就存在的,而作用域链是函数调用的时候才有的;

  • 相关阅读:
    普通文本(.txt)篇章排版样式参考 [文档说明][日志]
    C++基础练习案例
    Markdown 编写技巧汇总(二)
    Markdown 编写技巧汇总(一)
    有关C++程序设计基础的各种考题解答参考汇总
    有关算法与数据结构的考题解答参考汇总 [C++] [链表] · 第三篇
    有关算法与数据结构的考题解答参考汇总 [C++] [链表] · 第二篇
    有关算法与数据结构的考题解答参考汇总 [C++] [链表]
    DOS批处理小案例应用分享
    基于Processing图像序列处理保存导出的流程梳理
  • 原文地址:https://www.cnblogs.com/fsg6/p/12782948.html
Copyright © 2011-2022 走看看