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插入动态样式实现代码
Feb 22 Javascript
javascript使用location.search的示例
Nov 05 Javascript
JavaScript中的对象序列化介绍
Dec 30 Javascript
javascript中Object使用详解
Jan 26 Javascript
jQuery EasyUI Dialog拖不下来如何解决
Sep 28 Javascript
js倒计时简单实现方法
Dec 17 Javascript
js实现(全选)多选按钮的方法【附实例】
Mar 30 Javascript
基于javascript数组实现图片轮播
May 02 Javascript
Bootstrap 布局组件(全)
Jul 18 Javascript
JS中的==运算: [''] == false —>true
Jul 24 Javascript
AugularJS从入门到实践(必看篇)
Jul 10 Javascript
uniapp开发打包多端应用完整方法指南
Dec 24 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
windows下升级PHP到5.3.3的过程及注意事项
2010/10/12 PHP
php中ob_flush函数和flush函数用法分析
2015/03/18 PHP
PHP的Laravel框架结合MySQL与Redis数据库的使用部署
2016/03/21 PHP
php简单处理XML数据的方法示例
2017/05/19 PHP
ThinkPHP like模糊查询,like多匹配查询,between查询,in查询,一般查询书写方法
2018/09/26 PHP
Notify - 基于jquery的消息通知插件
2011/10/18 Javascript
兼容所有浏览器的js复制插件Zero使用介绍
2014/03/19 Javascript
Javascript 数组排序详解
2014/10/22 Javascript
jquery验证邮箱格式并显示提交按钮
2015/11/07 Javascript
jquery trigger函数执行两次的解决方法
2016/02/29 Javascript
浅谈js停止事件冒泡 阻止浏览器的默认行为(阻止超连接 #)
2017/02/08 Javascript
Bootstrap模态框案例解析
2017/03/05 Javascript
微信JS-SDK选取手机照片上传功能
2017/04/21 Javascript
Express + Session 实现登录验证功能
2017/09/08 Javascript
JavaScript实现短信倒计时60s
2017/10/09 Javascript
vue-router路由与页面间导航实例解析
2017/11/07 Javascript
JS中this的指向以及call、apply的作用
2018/05/06 Javascript
Vue.js项目中管理每个页面的头部标签的两种方法
2018/06/25 Javascript
vue的keep-alive中使用EventBus的方法
2019/04/23 Javascript
VUE-ElementUI 自定义Loading图操作
2020/11/11 Javascript
[50:50]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第一场 12.20
2020/12/23 DOTA
python计算最小优先级队列代码分享
2013/12/18 Python
python中文件变化监控示例(watchdog)
2017/10/16 Python
python游戏开发之视频转彩色字符动画
2019/04/26 Python
Python学习笔记之变量、自定义函数用法示例
2019/05/28 Python
浅析rem和em和px vh vw和% 移动端长度单位
2016/04/28 HTML / CSS
浅谈HTML5 & CSS3的新交互特性
2016/07/19 HTML / CSS
施华洛世奇英国官网:SWAROVSKI英国
2017/03/13 全球购物
新西兰演唱会和体育门票网站:Ticketmaster新西兰
2017/10/07 全球购物
.NET初级开发工程师面试题
2014/04/18 面试题
实习生自我鉴定
2013/12/12 职场文书
办公室主任职责范本
2014/03/07 职场文书
校园歌咏比赛主持词
2014/03/18 职场文书
禁毒主题班会教案
2015/08/14 职场文书
2016猴年春节慰问信
2015/11/30 职场文书
PostgreSQL并行计算算法及参数强制并行度设置方法
2022/04/07 PostgreSQL