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 相关文章推荐
js取值中form.all和不加all的区别介绍
Jan 20 Javascript
js+csss实现的一个带复选框的下拉框
Sep 29 Javascript
javascript Array 数组常用方法
Apr 05 Javascript
png在IE6 下无法透明的解决方法汇总
May 21 Javascript
ECMAScript6中Set/WeakSet详解
Jun 12 Javascript
Express的路由详解
Dec 10 Javascript
JavaScript事件类型中UI事件详解
Jan 14 Javascript
JS从一组数据中找到指定的单条数据的方法
Jun 02 Javascript
基于JS模仿windows文件按名称排序效果
Jun 29 Javascript
javascript 数组的正态分布排序的问题
Jul 31 Javascript
Node.js下自定义错误类型详解
Oct 17 Javascript
Vue开发过程中遇到的疑惑知识点总结
Jan 20 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
浅谈电磁辐射对健康的影响
2021/03/01 无线电
ThinkPHP实例化模型的四种方法概述
2014/08/22 PHP
php源码 fsockopen获取网页内容实例详解
2016/09/24 PHP
javascript获取当前ip的代码
2009/05/10 Javascript
从父页面读取和操作iframe中内容方法
2009/07/25 Javascript
jquery插件如何使用 jQuery操作Cookie插件使用介绍
2012/12/15 Javascript
当滚动条滚动到页面底部自动加载增加内容的js代码
2014/05/13 Javascript
JavaScript数据类型学习笔记
2016/01/25 Javascript
浅谈jQuery中hide和fadeOut的区别 show和fadeIn的区别
2016/08/18 Javascript
基于Vue.js实现tab滑块效果
2017/07/23 Javascript
VeeValidate在vue项目里表单校验应用案例
2018/05/09 Javascript
Vue项目安装插件并保存
2019/01/28 Javascript
vue input实现点击按钮文字增删功能示例
2019/01/29 Javascript
vue基础之事件简写、事件对象、冒泡、默认行为、键盘事件实例分析
2019/03/11 Javascript
微信小程序接入腾讯云验证码的方法步骤
2020/01/07 Javascript
vue使用better-scroll实现滑动以及左右联动
2020/06/30 Javascript
[51:17]完美世界DOTA2联赛循环赛Inki vs DeMonsTer 第二场 10月30日
2020/10/31 DOTA
使用python解析xml成对应的html示例分享
2014/04/02 Python
python操作mysql中文显示乱码的解决方法
2014/10/11 Python
python任务调度实例分析
2015/05/19 Python
Python排序搜索基本算法之希尔排序实例分析
2017/12/09 Python
python并发编程 Process对象的其他属性方法join方法详解
2019/08/20 Python
python+Django+pycharm+mysql 搭建首个web项目详解
2019/11/29 Python
Python pip配置国内源的方法
2020/02/14 Python
Python3爬虫中识别图形验证码的实例讲解
2020/07/30 Python
详解CSS3 弹性布局快速入门
2019/06/06 HTML / CSS
前端canvas动画如何转成mp4视频的方法
2019/06/17 HTML / CSS
Canvas引入跨域的图片导致toDataURL()报错的问题的解决
2018/09/19 HTML / CSS
加拿大专业美发产品购物网站:Chatters
2021/02/28 全球购物
移风易俗倡议书
2014/04/15 职场文书
小区文明倡议书
2014/05/16 职场文书
优秀少先队辅导员事迹材料
2014/12/24 职场文书
五四青年节比赛演讲稿
2015/03/18 职场文书
2015年上半年党建工作总结
2015/03/30 职场文书
Java实战之用Swing实现通讯录管理系统
2021/06/13 Java/Android
golang为什么要统一错误处理
2022/04/03 Golang