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 相关文章推荐
在IE模态窗口中自由查看HTML源码的方法
Mar 08 Javascript
jQuery EasyUI API 中文文档 - Tabs标签页/选项卡
Oct 01 Javascript
分析Node.js connect ECONNREFUSED错误
Apr 09 Javascript
jQuery对JSON数据进行排序输出的方法
Jun 24 Javascript
JavaScript每天必学之事件
Sep 18 Javascript
关于axios返回空对象的问题解决
Apr 04 Javascript
详解vue组件化开发-vuex状态管理库
Apr 10 Javascript
JS中this的指向以及call、apply的作用
May 06 Javascript
详解Vue CLI3配置之filenameHashing使用和源码设计使用和源码设计
Aug 31 Javascript
jQuery实现提交表单时不提交隐藏div中input的方法
Oct 08 jQuery
vue+django实现下载文件的示例
Mar 24 Vue.js
Element-ui Layout布局(Row和Col组件)的实现
Dec 06 Vue.js
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绘制在图片上的正余弦曲线
2013/06/08 PHP
PHP+MySQL修改记录的方法
2015/01/21 PHP
Thinkphp5 微信公众号token验证不成功的原因及解决方法
2017/11/12 PHP
php处理抢购类功能的高并发请求
2018/02/08 PHP
PHP高并发和大流量解决方案整理
2019/12/24 PHP
jQuery学习4 浏览器的事件模型
2010/02/07 Javascript
jquery使用ColorBox弹出图片组浏览层实例演示
2013/03/14 Javascript
js统计页面的来访次数实现代码
2014/05/09 Javascript
js实现ArrayList功能附实例代码
2014/10/29 Javascript
ExpressJS入门实例
2015/01/14 Javascript
使用Node.js实现HTTP 206内容分片的教程
2015/06/23 Javascript
jQuery实现指定内容滚动同时左侧或其它地方不滚动的方法
2015/08/08 Javascript
JS实现的N多简单无缝滚动代码(包含图文效果)
2015/11/06 Javascript
jQuery联动日历的实例解析
2016/12/02 Javascript
Bootstrap modal 多弹窗之叠加引起的滚动条遮罩阴影问题
2017/02/27 Javascript
使用jquery的jsonp如何发起跨域请求及其原理详解
2017/08/17 jQuery
vue仿淘宝订单状态的tab切换效果
2020/06/23 Javascript
swiper在vue项目中loop循环轮播失效的解决方法
2018/09/15 Javascript
微信小程序 数据缓存实现方法详解
2019/08/26 Javascript
JS正则表达式验证端口范围(0-65535)
2020/01/06 Javascript
使用next.js开发网址缩短服务的方法
2020/06/17 Javascript
javascript实现扫雷简易版
2020/08/18 Javascript
python实现无证书加密解密实例
2014/10/27 Python
Flask框架的学习指南之开发环境搭建
2016/11/20 Python
python合并多个excel文件的示例
2020/09/23 Python
Python字典实现伪切片功能
2020/10/28 Python
python 模拟登陆github的示例
2020/12/04 Python
购买200个世界上最好的内衣品牌:Bare Necessities
2017/02/11 全球购物
Otticanet美国:最顶尖的世界名牌眼镜, 能得到打折季的价格
2019/03/10 全球购物
Jar包的作用是什么
2014/03/30 面试题
大学学习生活感言
2014/01/18 职场文书
赔偿协议书
2015/01/27 职场文书
入队仪式主持词
2015/07/04 职场文书
信息简报范文
2015/07/21 职场文书
贴吧吧主申请感言
2015/08/03 职场文书
《秋天的雨》教学反思
2016/02/19 职场文书