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

    1     //变量提前 并不是赋值提前,变量a提前此时a的值为undefined,而同名的函数提前,将会覆盖变量a,使a的值为函数。
    2      var a;
    3      a=()=>{
    4          console.log(11)
    5      };
    6      console.log(a);
    1     // 改变变量a的声明位置,结果依然一样。究其原因:变量提升,并不包含变量复制的提升。
    2     a=()=>{};
    3     var  a;
    4     console.log(a);//a的值依然是函数。

    也可以这么认为在声明变量和显示声明函数的时候,函数的值会覆盖变量。

    对于变量覆盖:只是针对重新声明变量。

    • 同一个作用域中,会进行值得覆盖,函数覆盖变量;变量覆盖变量;函数覆盖函数。
    • 不同作用域,不会出现覆盖情况。
    1     var k;
    2     var k=2;
    3     console.log(k);
    4      m=()=>{console.log(131231)};
    5     var m;
    6     console.log(m);
    7     n=()=>{console.log(1)};
    8     n=()=>{console.log(2)};
    9     console.log(n);

    1     //如果进行覆盖,不可以重新声明变量,直接调用改变。
    2     var  cl1=22;
    3     dd1=()=>{
    4         cl1=33;
    5     };
    6     dd1();
    7     console.log(cl1);

    如果在声明变量不加var,他会从当前域中是否存在该变量,如果没有,继续去上一层作用域查找,如果有就覆盖,如果没有继续查找,直到查找到顶层作用域。最后没有的话。会将该变量挂载在window对象中作为属性或者方法。作为全局变量,我们可以直接调用也可以直接使用window.变量名字
    1     /**
    2      * 如果在声明变量不加var,他会从当前域中是否存在该变量,如果没有,继续去上一层作用域查找,如果有就覆盖,如果没有继续查找,直到查找到
    3      * 顶层作用域。最后没有的话。会将该变量挂载在window对象中。
    4      */
    5     fn=()=>{
    6         a=2;
    7     };
    8     fn();
    9     console.log(window.a)
    关于函数中形参,相当于在函数局部作用域中声明一个变量 var 变量名。并不会覆盖不同作用域的同名标识符。
     1     /**
     2      * 关于函数中形参,相当于在函数局部作用域中声明一个变量 var 变量名。并不会覆盖不同作用域的同名标识符。
     3      */
     4     var cc;
     5     cc=123;
     6     cc1=(cc)=>{//相当于重新声明一个变量在函数局部作用域。var  cc;
     7         cc=2123;//对于形参cc重新赋值。arguments[0]=2123一样的效果。
     8         console.log(cc);
     9     };
    10     cc1(cc);//注意在调用函数进行传参的时候传递的是值。对于基本类型传递的是数值。而对于对象传递是内存地址不是引用。
    11     console.log(cc);







  • 相关阅读:
    移动端链接、点击事件、输入框去除背景高亮
    Quartz.Net与MVC结合定时任务
    Win10上使用SVN遇到的一些问题
    Win7上的ASP.NET MVC3项目在Win10上运行的一个坑
    《SQL必知必会》学习笔记(二)
    《SQL必知必会》学习笔记(一)
    数据库知识总结(表结构操作)
    搭建三层架构(ASP.NET MVC+EF)
    python线程中的全局变量与局部变量
    ADO.NET Entity Framework学习笔录(一)
  • 原文地址:https://www.cnblogs.com/evilliu/p/10814226.html
Copyright © 2011-2022 走看看