首页 > Web开发 > 详细

js函数作用域

时间:2019-05-05 17:10:04      阅读:139      评论:0      收藏:0      [点我收藏+]
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);

技术分享图片

 

js函数作用域

原文:https://www.cnblogs.com/evilliu/p/10814226.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!