zoukankan      html  css  js  c++  java
  • 函数作用域和块级作用域

    ------------>函数作用域:

            顾名思意也就是在创建函数的时候附加的一个作用域    

    function foo(){
       var b=2;  
    }
    console.log(b);//ReferenceError

             从上面的代码我们就可以确认在创建函数foo()的时候,我们创建了一个函数作用域,因为在外面找不到这个变量!!!

    ------------>嵌套的函数作用域

            依旧是一个作用域中套着一个作用域

    function foo(a){
     
        function dar(){
            console.log(b);//13
        }
        var b=10;   
    dar();
    } foo(3);

            这个例子也说明了作用域是一层一层向上遍历标识符的

    ------------>函数表达式/函数声明

            我们来看一下他们的定义

               函数声明:function是声明中的第一个词

               函数表达式:function不是什么中的第一个词

            我们来看一下例子

    var d=function(){}//函数表达式
    function foo(){}//函数声明

    ------------>块级作用域{}

            首先我们来看一个"寻常的例子"

    for(var i=0;i<10;i++){
    console.log(i);
    }
    console.log(i);//10

              在这里我们可以看到变量已经被泄露到了全局作用域中

            那我们这么样可以避免这样的污染?!看下面的例子

    for(let i=0;i<10;i++){
    console.log(i);
    }
    console.log(i);//ReferenceError

              在这里我们使用了一个关键字let,作用是让变量绑定到这个作用域,上面的代码同下

    {
      let i;  
      for(i=0;i<10;i++){
            let j=i;
           console.log(j);        
        }  
    }    

          当然还可以这样

    {    
        for(var i=0;i<10;i++){
            console.log(i);
        }
    }
    console.log(i);//ReferenceError

          还可以这样

    (function foo(){
       for(var i=0;i<10;i++){
           console.log(i);  
        }      
    })();//在后面加了一个括号,表示立即执行这个函数表达式

    --------------->const

                         这个关键字就是标明这个标识符是常量的意思

     const b=function foo(a){
        console.log(a);
     };
        b(33);
        (b=function(d){console.log(d);})(44);//TypeError

            这个也说明了const可以放在任何地方

    Hold on, everything is possible.
  • 相关阅读:
    python json 访问与字符串截取
    python 12306 车次数据获取
    12306 城市代码 切片技巧
    python 9*9 乘法表
    python 列表转为字典的两个小方法
    python 三种遍历列表里面序号和值的方法
    虚拟机中访问连接在物理机上的摄像机(使用桥接)
    C++程序调用python3
    Notepad++编写运行python程序
    查看进程被哪台电脑的哪个进程连接(netstat)
  • 原文地址:https://www.cnblogs.com/student-note/p/6632301.html
Copyright © 2011-2022 走看看