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 相关文章推荐
JavaScript 应用类库代码
Jun 02 Javascript
javaScript 关闭浏览器 (不弹出提示框)
Jan 31 Javascript
用jquery实现的模拟QQ邮箱里的收件人选取及其他效果(一)
Jan 06 Javascript
jQuery的学习步骤
Feb 23 Javascript
javascript获取和判断浏览器窗口、屏幕、网页的高度、宽度等
May 08 Javascript
jQuery实现购物车数字加减效果
Mar 14 Javascript
JavaScript返回网页中超链接数量的方法
Apr 03 Javascript
jquery彩色投票进度条简单实例演示
Jul 23 Javascript
jQuery中的基本选择器用法学习教程
Apr 14 Javascript
微信小程序 SocketIO 实例讲解
Oct 13 Javascript
jQuery自定义图片上传插件实例代码
Apr 04 jQuery
vue elementUI tree树形控件获取父节点ID的实例
Sep 12 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
php漏洞之跨网站请求伪造与防止伪造方法
2013/08/15 PHP
php获取网页中图片、DIV内容的简单方法
2014/06/19 PHP
CI框架表单验证实例详解
2016/11/21 PHP
prototype Element学习笔记(篇二)
2008/10/26 Javascript
基于OO的动画附加插件,可以实现弹跳、渐隐等动画效果 分享
2013/06/24 Javascript
javascript实现分栏显示小技巧附图
2014/10/13 Javascript
解析javascript中鼠标滚轮事件
2015/05/26 Javascript
jQuery实现灰蓝风格标准二级下拉菜单效果代码
2015/08/31 Javascript
基于JavaScript实现TAB标签效果
2016/01/12 Javascript
微信小程序  checkbox组件详解及简单实例
2017/01/10 Javascript
jQuery中用on绑定事件时需注意的事项
2017/03/19 Javascript
你可能不知道的前端算法之文字避让(inMap)
2018/01/12 Javascript
vue如何判断dom的class
2018/04/26 Javascript
详解vue为什么要求组件模板只能有一个根元素
2019/07/22 Javascript
nodejs使用socket5进行代理请求的实现
2020/02/21 NodeJs
Antd下拉选择,自动匹配功能的实现
2020/10/24 Javascript
Python中的一些陷阱与技巧小结
2015/07/10 Python
Python通过DOM和SAX方式解析XML的应用实例分享
2015/11/16 Python
两个元祖T1=('a', 'b'),T2=('c', 'd')使用匿名函数将其转变成[{'a': 'c'},{'b': 'd'}]的几种方法
2019/03/05 Python
基于Django统计博客文章阅读量
2019/10/29 Python
python快速排序的实现及运行时间比较
2019/11/22 Python
python logging添加filter教程
2019/12/24 Python
python删除文件、清空目录的实现方法
2020/09/23 Python
DHC美国官网:日本通信销售第一的化妆品品牌
2017/11/12 全球购物
应届毕业生求职信范文
2013/12/18 职场文书
四川成都导游欢迎词
2014/01/18 职场文书
物流毕业生个人的自我评价
2014/02/13 职场文书
大学运动会入场词
2014/02/22 职场文书
设计顾问服务计划书
2014/05/04 职场文书
行政监察建议书
2014/05/19 职场文书
田径运动会通讯稿
2014/09/13 职场文书
2014年十一国庆节活动方案
2014/09/16 职场文书
考试作弊万能检讨书
2014/10/19 职场文书
《游戏公平》教学反思
2016/02/20 职场文书
python3操作redis实现List列表实例
2021/08/04 Python
Python用tkinter实现自定义记事本的方法详解
2022/03/31 Python