当前位置:主页 > javascript教程 > JS中的作用域链

如何理解JS中的作用域链及作用域链

发布:2020-02-22 10:10:43 184


本站收集了一篇JavaScript相关的编程文章,网友姚半雪根据主题投稿了本篇教程内容,涉及到js、作用域链、JS中的作用域链相关内容,已被843网友关注,内容中涉及的知识点可以在下方直接下载获取。

JS中的作用域链

在js中数据的声明方式有两种:

1、用var声明,例如:var num = 10;

2、直接声明,例如:num = 10;

两种声明方式在某些情况下是有区别的:

var data = 10;
function fn01(){
  var data = 100;
  function fn02(){
    data = 1000;
    function fn03(){
      data = 10000;
    }
    fn03();
  }
  fn02();
}
fn01();
console.log(data);

此时data会是多少呢?

没错就是10

当在函数内使用var声明变量的时候这个变量就是局部变量,而当不使用var定义变量的时候这个变量就会是全局变量,当然这个全局变量也需要看定义的位置,这个全局变量会一直往上层寻找使用var定义的相同名称的变量,当寻找到时会替换其原来的变量,如果未找到则会自行定义一个全局变量;

var data = 10;
function fn01(){
  data = 100;
  function fn02(){
    data = 1000;
    function fn03(){
      data = 10000;
    }
    fn03();
  }
  fn02();
}
fn01();
console.log(data);

此时的data就是10000了,你学会了吗?

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持码农之家!


参考资料

相关文章

  • 汇总JS从非数组对象转数组的方法

    发布:2020-02-14

    这篇文章主要给大家介绍了关于JS从非数组对象转数组的一些方法,分别是Array.prototype.slice.call(obj)、Array.from(obj)、[…obj]和Object.values(obj)等方法的详细实现方法,需要的朋友可以参考下。


  • Vue.js路由实现选项卡的代码

    发布:2019-12-19

    这篇文章主要为大家详细介绍了Vue.js路由实现选项卡简单实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下


  • 实例讲解小程序input框失焦事件在提交事件前的处理

    发布:2020-02-10

    这篇文章主要介绍了详解小程序input框失焦事件在提交事件前的处理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学


  • 实现一个简单的Node.js脚手架方法代码

    发布:2019-11-17

    本篇文章主要介绍了如何实现一个简单的Node.js脚手架,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧


  • 总结JS中通过url动态获取图片大小的两种方法

    发布:2020-01-27

    这篇文章主要介绍了JS中通过url动态获取图片大小的方法小结,本文给大家列举了两种方法,大家可以尝试下看哪种方法好用,感兴趣的朋友跟随小编一起看看吧


  • 如何用js判断PC端与移动端跳转

    发布:2020-01-09

    本文主要介绍了js判断PC端与移动端跳转的方法,具有很好的参考价值。下面跟着小编一起来看下吧


  • 深入理解JS函数stack size计算方法

    发布:2020-02-19

    本篇文章给大家分享了关于JS函数中stack size计算方法的相关知识点,对此有需要的朋友可以跟着学习下。


  • JavaScript的6种继承方式总结

    发布:2019-12-17

    继承是面向对象编程中又一非常重要的概念,JavaScript支持实现继承,不支持接口继承,实现继承主要依靠原型链来实现的


网友讨论