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 相关文章推荐
Firefox window.close()的使用注意事项
Apr 11 Javascript
jQuery通过控制节点实现仅在前台通过get方法完成参数传递
Feb 02 Javascript
JavaScript严格模式详解
Nov 18 Javascript
jquery获取复选框checkbox的值的简单实现方法
May 26 Javascript
详解Vue.js之视图和数据的双向绑定(v-model)
Jun 23 Javascript
收藏AngularJS中最重要的核心功能
Jul 09 Javascript
Node.js简单入门前传
Aug 21 Javascript
JavaScript编程设计模式之构造器模式实例分析
Oct 25 Javascript
Angular8基础应用之表单及其验证
Aug 11 Javascript
微信小程序之侧边栏滑动实现过程解析(附完整源码)
Aug 23 Javascript
基于VUE实现判断设备是PC还是移动端
Jul 03 Javascript
手写Vue源码之数据劫持示例详解
Jan 04 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
c#中的实现php中的preg_replace
2009/12/21 PHP
PHP 工厂模式使用方法
2010/05/18 PHP
php实现递归抓取网页类实例
2015/04/03 PHP
PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能
2017/11/10 PHP
PHP设计模式之单例模式定义与用法分析
2019/03/26 PHP
js浏览器本地存储store.js介绍及应用
2014/05/13 Javascript
javascript十六进制数字和ASCII字符之间的转换方法
2016/12/27 Javascript
jQuery中each循环的跳出和结束实例
2017/08/16 jQuery
使用 Vue 绑定单个或多个 Class 名的实例代码
2018/01/08 Javascript
vuex操作state对象的实例代码
2018/04/25 Javascript
浅析Vue 生命周期
2018/06/21 Javascript
小白教程|一小时上手最流行的前端框架vue(推荐)
2019/04/10 Javascript
JS实现随机抽选获奖者
2019/11/07 Javascript
解决vue项目获取dom元素宽高总是不准确问题
2020/07/29 Javascript
python threading模块操作多线程介绍
2015/04/08 Python
初步剖析C语言编程中的结构体
2016/01/16 Python
浅谈python3发送post请求参数为空的情况
2018/12/28 Python
详解如何用TensorFlow训练和识别/分类自定义图片
2019/08/05 Python
python实现连续变量最优分箱详解--CART算法
2019/11/22 Python
爱尔兰领先的在线体育用品零售商:theGAAstore
2018/04/16 全球购物
具有防紫外线功能的高性能钓鱼服装:Hook&Tackle
2018/08/16 全球购物
拉斯维加斯城市观光通行证:Las Vegas Pass
2019/05/21 全球购物
美国探亲签证邀请信
2014/02/05 职场文书
中华魂演讲稿
2014/05/13 职场文书
乳制品整治工作方案
2014/05/29 职场文书
施工安全标语
2014/06/07 职场文书
党员反对四风问题思想汇报
2014/09/12 职场文书
借款协议书
2014/09/16 职场文书
房屋买卖授权委托书
2014/09/27 职场文书
2014年医药代表工作总结
2014/11/22 职场文书
酒会开场白大全
2015/06/01 职场文书
《窃读记》教学反思
2016/02/18 职场文书
新店开业策划方案怎么书写?
2019/07/05 职场文书
Springboot如何使用logback实现多环境配置?
2021/06/16 Java/Android
使用Docker容器部署rocketmq单机的全过程
2022/04/03 Servers
动作冒险《Hell Is Us》将采用虚幻5 消灭怪物探索王国
2022/04/13 其他游戏