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 miscellanea -display data real time, using window.status
Jan 09 Javascript
juqery 学习之三 选择器 层级 基本
Nov 25 Javascript
jquery复选框全选/取消示例
Dec 30 Javascript
javascript如何判断输入的url是否正确
Apr 11 Javascript
js鼠标点击图片实现随机变换图片的方法
Feb 16 Javascript
jQuery简单实现禁用右键菜单
Mar 10 Javascript
JavaScript实现单击下拉框选择直接跳转页面的方法
Jul 02 Javascript
input type=file 选择图片并且实现预览效果的实例
Oct 26 Javascript
微信小程序获取手机号授权用户登录功能
Nov 09 Javascript
微信小程序下拉菜单效果的实例代码
May 14 Javascript
解决Vue大括号字符换行踩的坑
Nov 09 Javascript
Vertx基于EventBus发送接受自定义对象
Nov 16 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中mysql与mysqli的区别分析
2013/06/10 PHP
PHP面向对象程序设计继承用法简单示例
2018/12/28 PHP
在vs2010中调试javascript代码方法
2011/02/11 Javascript
javascript实现数字验证码的简单实例
2014/02/10 Javascript
JavaScript获得指定对象大小的方法
2015/07/01 Javascript
移动端JQ插件hammer使用详解
2015/07/03 Javascript
jQuery超简单选项卡完整实例
2015/09/26 Javascript
基于js实现的限制文本框只可以输入数字
2016/12/05 Javascript
如何制作幻灯片(代码分享)
2017/01/06 Javascript
详解JavaScript RegExp对象
2017/02/04 Javascript
利用JS如何计算字符串所占字节数示例代码
2017/09/13 Javascript
vue学习笔记五:在vue项目里面使用引入公共方法详解
2019/04/04 Javascript
Vue.js计算机属性computed和methods方法详解
2019/10/12 Javascript
Vue的click事件防抖和节流处理详解
2019/11/13 Javascript
详解小程序BackgroundAudioManager踩坑之旅
2019/12/08 Javascript
js实现打字小游戏
2019/12/17 Javascript
解决vue安装less报错Failed to compile with 1 errors的问题
2020/10/22 Javascript
JavaScript快速调试的两个技巧
2020/11/04 Javascript
菜鸟使用python实现正则检测密码合法性
2016/01/05 Python
详解Python对JSON中的特殊类型进行Encoder
2019/07/15 Python
Python FtpLib模块应用操作详解
2019/12/12 Python
使用python的turtle函数绘制一个滑稽表情
2020/02/28 Python
python中shell执行知识点
2020/05/06 Python
CSS3制作精致的照片墙特效
2016/06/07 HTML / CSS
VIVOBAREFOOT赤脚鞋:让您的脚做自然的事情
2017/06/01 全球购物
C#中有没有静态构造函数,如果有是做什么用的?
2016/06/04 面试题
财务管理专业自荐信范文
2013/12/24 职场文书
中学教师教育感言
2014/02/21 职场文书
高中学生评语大全
2014/04/25 职场文书
副校长竞聘演讲稿
2014/09/01 职场文书
2014年团支部工作总结
2014/11/17 职场文书
给老婆道歉的话
2015/01/20 职场文书
《百分数的认识》教学反思
2016/02/19 职场文书
告诉你创业计划书的8个实用技巧
2019/07/12 职场文书
导游词之四川武侯祠
2019/10/21 职场文书
Mysql排查分析慢sql之explain实战案例
2022/04/19 MySQL