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 支持ie和firefox杰奇翻页函数
Jul 22 Javascript
JQuery获取元素文档大小、偏移和位置和滚动条位置的方法集合
Jan 12 Javascript
js Map List 遍历使用示例
Jul 10 Javascript
如何书写高质量jQuery代码(使用jquery性能问题)
Jun 30 Javascript
Node.js 应用跑得更快 10 个技巧
Apr 03 Javascript
jQuery循环遍历子节点并获取值的方法
Apr 14 Javascript
Angularjs+bootstrap+table多选(全选)支持单击行选中实现编辑、删除功能
Mar 27 Javascript
一种angular的方法级的缓存注解(装饰器)
Mar 13 Javascript
js实现继承的方法及优缺点总结
May 08 Javascript
微信小程序实现消息框弹出动画
Apr 18 Javascript
element el-tree组件的动态加载、新增、更新节点的实现
Feb 27 Javascript
JS实现炫酷雪花飘落效果
Aug 19 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程序中防止盗链
2008/04/09 PHP
php利用curl抓取新浪微博内容示例
2014/04/27 PHP
PHP伪静态Rewrite设置之APACHE篇
2014/07/30 PHP
PHP+MySQL实现无极限分类栏目的方法
2015/12/23 PHP
PHP iconv()函数字符编码转换的问题讲解
2019/03/22 PHP
分享几种好用的PHP自定义加密函数(可逆/不可逆)
2020/09/15 PHP
javascript+mapbar实现地图定位
2010/04/09 Javascript
javascript使用eval或者new Function进行语法检查
2010/10/16 Javascript
JS打开新窗口的2种方式
2013/04/18 Javascript
jQuery基于当前元素进行下一步的遍历
2014/05/20 Javascript
JavaScript设计模式之观察者模式(发布者-订阅者模式)
2014/09/24 Javascript
js与jquery回车提交的方法
2015/02/03 Javascript
jQuery热气球动画半透明背景的后台登录界面代码分享
2015/08/28 Javascript
JS实现超精简响应鼠标显示二级菜单代码
2015/09/12 Javascript
4种JavaScript实现简单tab选项卡切换的方法
2016/01/06 Javascript
Jqprint实现页面打印
2017/01/06 Javascript
微信小程序实现折叠与展开文章功能
2018/06/12 Javascript
如何安装控制器JavaScript生成插件详解
2018/10/21 Javascript
解决vue数据不实时更新的问题(数据更改了,但数据不实时更新)
2020/10/27 Javascript
[00:20]DOTA2荣耀之路7:-ah fu-抢盾
2018/05/31 DOTA
python list语法学习(带例子)
2013/11/01 Python
python实现装饰器、描述符
2018/02/28 Python
python控制nao机器人身体动作实例详解
2019/04/29 Python
Python3之不使用第三方变量,实现交换两个变量的值
2019/06/26 Python
python之pexpect实现自动交互的例子
2019/07/25 Python
python3 selenium自动化 下拉框定位的例子
2019/08/23 Python
QT5 Designer 打不开的问题及解决方法
2020/08/20 Python
实例讲解CSS3中的box-flex弹性盒属性布局
2016/06/09 HTML / CSS
Spanx塑身衣官网:美国知名内衣品牌
2017/01/11 全球购物
美国首屈一指的高品质珠宝设计师和零售商:Allurez
2018/01/23 全球购物
给实习单位的感谢信
2014/02/01 职场文书
初二生物教学反思
2014/02/03 职场文书
广告艺术设计专业自荐书
2014/07/08 职场文书
科学发展观活动总结
2014/08/28 职场文书
离职证明标准格式
2014/09/15 职场文书
2015年世界无烟日活动总结
2015/02/10 职场文书