JS中的作用域链

作者:Lemon-x 时间:2024-11-02 23:25:24 

在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了,你学会了吗?

来源:http://www.cnblogs.com/ningmeng666/p/6484010.html

标签:js,作用域链
0
投稿

猜你喜欢

  • 记录集不支持更新。这可能是提供程序的限制,也可能是选定锁定类型的限制

    2010-04-07 22:35:00
  • 修改fckeditor的文件上传功能步骤

    2023-03-19 17:31:28
  • Python 开发工具通过 agent 代理使用的方法

    2022-10-19 05:15:31
  • golang 执行命令行的实现

    2024-04-28 09:14:40
  • vue3缓存页面keep-alive及路由统一处理详解

    2024-05-02 16:34:12
  • 使用python-pptx包批量修改ppt格式的实现

    2021-04-03 21:31:16
  • 基于Python实现体育彩票选号器功能代码实例

    2021-06-15 17:48:54
  • Python图像处理实现两幅图像合成一幅图像的方法【测试可用】

    2022-11-13 08:36:56
  • 七个生态系统核心库[python自学收藏]

    2021-09-17 03:51:12
  • 解决Goland 提示 Unresolved reference 错误的问题

    2024-02-07 13:32:26
  • MySQL DQL语句的具体使用

    2024-01-21 08:17:03
  • 基于Python实现一个简单的学生管理系统

    2023-07-23 23:06:40
  • Python装饰器详情

    2021-10-22 07:22:49
  • Tensorflow自定义模型与训练超详细讲解

    2023-09-19 10:18:00
  • javascript实现tabs选项卡切换效果(自写原生js)

    2024-04-22 22:23:43
  • 必备 SQL 查询优化技巧提升网站访问速度

    2024-01-18 23:59:37
  • Node.js多进程的方法与参数实例说明

    2024-05-02 17:37:37
  • IE 8 提出“超级标准模式”

    2008-01-24 19:26:00
  • 使用CSS3和RGBa创建超酷的按钮

    2009-06-02 12:41:00
  • Python数据预处理时缺失值的不同处理方式总结

    2022-02-14 22:58:25
  • asp之家 网络编程 m.aspxhome.com