JS中的作用域链


Posted in Javascript onMarch 01, 2017

在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了,你学会了吗?

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

Javascript 相关文章推荐
getElementByIdx_x js自定义getElementById函数
Jan 24 Javascript
javascript中setTimeout和setInterval的unref()和ref()用法示例
Nov 26 Javascript
在JavaScript中处理字符串之fontcolor()方法的使用
Jun 08 Javascript
Immutable 在 JavaScript 中的应用
May 02 Javascript
JS获取元素多层嵌套思路详解
May 16 Javascript
js实现带简单弹性运动的导航条
Feb 22 Javascript
jquery中绑定事件的异同
Feb 28 Javascript
jQuery实现模糊查询的方法分析
May 10 jQuery
CSS3 动画卡顿性能优化的完美解决方案
Sep 20 Javascript
Angular父子组件通过服务传参的示例方法
Oct 31 Javascript
微信小程序实现发送模板消息功能示例【通过openid推送消息给用户】
May 05 Javascript
jQuery 筛选器简单操作示例
Oct 02 jQuery
javascript html5轻松实现拖动功能
Mar 01 #Javascript
详解数组Array.sort()排序的方法
May 09 #Javascript
JavaScript中数组Array.sort()排序方法详解
Mar 01 #Javascript
javascript中replace使用方法总结
Mar 01 #Javascript
jQuery validate 验证radio实例
Mar 01 #Javascript
提高JavaScript执行效率的23个实用技巧
Mar 01 #Javascript
使用jQuery的load方法设计动态加载及解决被加载页面js失效问题
Mar 01 #Javascript
You might like
PHP 多维数组排序(usort,uasort)
2010/06/30 PHP
php查询mysql数据库并将结果保存到数组的方法
2015/03/18 PHP
详解php中的implements 使用
2017/06/13 PHP
thinkPHP框架实现类似java过滤器的简单方法示例
2018/09/05 PHP
PHP使用HTML5 FormData对象提交表单操作示例
2019/07/02 PHP
用js脚本控制asp.net下treeview的NodeCheck的实现代码
2010/03/02 Javascript
jquery实现控制表格行高亮实例
2013/06/05 Javascript
JS 实现BASE64_ENCODE和BASE64_DECODE(实例代码)
2013/11/13 Javascript
文本框只能选择数据到文本框禁止手动输入
2013/11/22 Javascript
深入理解javascript中return的作用
2013/12/30 Javascript
JavaScript中的函数的两种定义方式和函数变量赋值
2014/05/12 Javascript
jQuery通过Ajax返回JSON数据
2015/04/28 Javascript
基于Jquery和html5的7款个性化地图插件
2015/11/17 Javascript
jQuery插件实现图片轮播特效
2016/06/16 Javascript
webpack踩坑之路图片的路径与打包
2017/09/05 Javascript
JavaScript设计模式之代理模式简单实例教程
2018/07/03 Javascript
详解React项目中碰到的IE问题
2019/03/14 Javascript
如何通过setTimeout理解JS运行机制详解
2019/03/23 Javascript
jQuery实现判断滚动条滚动到document底部的方法分析
2019/08/27 jQuery
浅探express路由和中间件的实现
2019/09/30 Javascript
windows实现npm和cnpm安装步骤
2019/10/24 Javascript
JavaScript实现联动菜单特效
2020/01/07 Javascript
python使用itchat库实现微信机器人(好友聊天、群聊天)
2018/01/04 Python
Python的高阶函数用法实例分析
2019/04/11 Python
django-orm F对象的使用 按照两个字段的和,乘积排序实例
2020/05/18 Python
Sunglasses Shop瑞典:欧洲领先的太阳镜网上商店
2018/04/22 全球购物
网络公司美工设计工作个人的自我评价
2013/11/03 职场文书
高中生毕业学习总结的自我评价
2013/11/14 职场文书
高中地理教学反思
2014/01/29 职场文书
给校长的建议书
2014/03/12 职场文书
迟到检讨书范文
2015/01/27 职场文书
2015年采购工作总结
2015/04/10 职场文书
2015年仓库管理工作总结
2015/05/25 职场文书
九年级历史教学反思
2016/02/19 职场文书
四年级作文之植物
2019/09/20 职场文书
MySQL示例讲解数据库约束以及表的设计
2022/06/16 MySQL