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 相关文章推荐
js滚动条多种样式,推荐
Feb 05 Javascript
javascript prototype,executing,context,closure
Dec 24 Javascript
js获取单选框或复选框值及操作
Dec 18 Javascript
JS幻灯片可循环播放可平滑旋转带滚动导航(自写)
Aug 05 Javascript
2014年最火的Node.JS后端框架推荐
Oct 27 Javascript
简单谈谈jQuery(function(){})与(function(){})(jQuery)
Dec 19 Javascript
javascript折半查找详解
Jan 26 Javascript
javascript下拉列表中显示树形菜单的实现方法
Nov 17 Javascript
微信小程序使用canvas自适应屏幕画海报并保存图片功能
Jul 25 Javascript
vue 实现滚动到底部翻页效果(pc端)
Jul 31 Javascript
VUE和Antv G6实现在线拓扑图编辑操作
Oct 28 Javascript
JavaScript 原型与原型链详情
Nov 02 Javascript
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
乱谈我对耳机、音箱的感受
2021/03/02 无线电
一个PHP+MSSQL分页的例子
2006/10/09 PHP
如何用phpmyadmin设置mysql数据库用户的权限
2012/01/09 PHP
PHP程序员常见的40个陋习,你中了几个?
2014/11/20 PHP
PHP实现伪静态方法汇总
2016/01/13 PHP
thinkPHP自定义类实现方法详解
2016/11/30 PHP
PDO::getAvailableDrivers讲解
2019/01/28 PHP
Web版彷 Visual Studio 2003 颜色选择器
2007/01/09 Javascript
javascript 处理事件绑定的一些兼容写法
2009/12/24 Javascript
JS维吉尼亚密码算法实现代码
2010/11/09 Javascript
JavaScript call apply使用 JavaScript对象的方法绑定到DOM事件后this指向问题
2011/09/28 Javascript
javascript和jquery修改a标签的href属性
2013/12/16 Javascript
详细分析使用AngularJS编程中提交表单的方式
2015/06/19 Javascript
js手动播放图片实现图片轮播效果
2016/09/17 Javascript
CSS3 media queries结合jQuery实现响应式导航
2016/09/30 Javascript
JavaScript注入漏洞的原理及防范(详解)
2016/12/04 Javascript
Vue 2.0入门基础知识之内部指令详解
2017/10/15 Javascript
vue-music 使用better-scroll遇到轮播图不能自动轮播问题
2018/12/03 Javascript
vue 强制组件重新渲染(重置)的两种方案
2019/10/29 Javascript
基于vue+uniapp直播项目实现uni-app仿抖音/陌陌直播室功能
2019/11/12 Javascript
vue 组件基础知识总结
2021/01/26 Vue.js
[46:20]TFT vs Secret Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
小结Python用fork来创建子进程注意事项
2014/07/03 Python
基于Python实现文件大小输出
2016/01/11 Python
python编程实现希尔排序
2017/04/13 Python
python树莓派红外反射传感器
2019/01/21 Python
Appium+python自动化之连接模拟器并启动淘宝APP(超详解)
2019/06/17 Python
matplotlib绘制多个子图(subplot)的方法
2019/12/03 Python
python全局变量引用与修改过程解析
2020/01/07 Python
Python json读写方式和字典相互转化
2020/04/18 Python
python函数超时自动退出的实操方法
2020/12/28 Python
卡骆驰新加坡官网:Crocs新加坡
2018/06/12 全球购物
简历上的自我评价
2014/02/03 职场文书
医院深入开展党的群众路线教育实践活动实施方案
2014/08/27 职场文书
先进个人事迹材料范文
2014/12/30 职场文书
JMeter对MySQL数据库进行压力测试的实现步骤
2022/01/22 MySQL