技术交流QQ群:1027579432,欢迎你的加入!

1.作用域

  • 通常来说,一段程序代码中所用到的名字并不是一直有效和可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域。作用域的使用提高了程序逻辑的局部性,增强了程序的可靠性,减少了名字的冲突。

2.JS中的作用域(ES6之前)

  • 全局作用域:整个script标签或者一个单独的js文件;
  • 局部作用域(函数作用域):在函数内部就是局部作用域,这个代码的名字只在函数内部起效果和作用;

3.变量的作用域

  • 变量作用域的分类

    • 在JS中,根据变量作用域的不同,变量可以分为两种:

      • 全局变量全局作用域下的变量,在整个全局下都可以使用。注意:如果在函数内部没有声明直接赋值的变量也属于全局变量
      • 局部变量局部作用域下的变量。注意:函数的形参也可以看成是局部变量
    var num = 10;  // num是一个全局变量
    console.log(num);function fun() {console.log(num);}
    fun()
    console.log(args);  // 函数形参是局部变量
    function Bar(args){var num1 = 200;  // num1就是局部变量,只能在函数内部使用num2 = 20;  // 全局变量
    }
    console.log(Bar());  // undefined
    // console.log(num1);  // 报错
    console.log(num2);
    
    • 从执行效率来看全局变量和局部变量

      • 全局变量只有在浏览器关闭的时候才会销毁,比较占内存;
      • 局部变量当程序执行完毕,就会销毁,比较节约内存资源;
  • JS中没有块级作用域,在ES6之后才新增了块级作用域
  • 块级作用域{},例如if{}、for{}等。
    if (3 <5) {var num = 20;
    }
    console.log(num);
    

4.作用域链

  • 只要是代码,就至少有一个作用域;
  • 写在函数内部的局部作用域;
  • 如果函数中还有函数,那么在这个作用域中又可以诞生一个新的作用域;
  • 根据在内部函数可以访问外部函数变量的这种机制,*用链式查找决定哪些数据能被内部函数访问,这就称为作用域链(就近原则);
    var num = 666;
    function haha() {  // 外部函数var num = 888;function dana() {  // 内部函数console.log(num);}console.log(num);dana();
    }
    haha();
    

5.资料下载

  • 笔记及代码,欢迎star,follow,fork…

09JavaScript中的作用域相关推荐

  1. JavaScript中的作用域,闭包和上下文

    深入理解JavaScript中的作用域和上下文 很多语言当中都会有作用域的概念,它会给我们带来便利,偶尔也会有烦恼,只有清楚地理解和掌握了它,才能更好地为我所用,今天就带来这么一篇文章供大家参考. 介 ...

  2. 【Groovy】Groovy 脚本调用 ( Groovy 脚本中的作用域 | 本地作用域 | 绑定作用域 )

    文章目录 一.Groovy 脚本中的作用域 ( 本地作用域 | 绑定作用域 ) 二.Groovy 脚本中的作用域代码示例 一.Groovy 脚本中的作用域 ( 本地作用域 | 绑定作用域 ) 在 Gr ...

  3. javascript中关于作用域和闭包

    列表项目 前言 学习了javascript已经很久了,关于这个语言中的这两个特性也是早已耳熟能详,但是在实际的使用的过程中或者是遇到相关的问题的时候,还是不能很好的解决. 因此我觉得很有必要深入的学习 ...

  4. android中变量作用域,在 Android 和 Hilt 中限定作用域

    将对象 A 的作用域限定到对象 B,指的是对象 B 的整个生命周期内始终持有相同的 A 实例.当涉及到 DI (依赖项注入) 时,限定对象 A 的作用域为一个容器,则意味着该容器在销毁之前始终提供相同 ...

  5. python中变量作用域

    python中变量作用域采取以下规则: 1.python能够改变变量作用域的代码段是def.class.lamda. 2.if/elif/else.try/except/finally.for/whi ...

  6. JS----JavaScript中的作用域和作用域链

    作用域(Scope) 1.什么是作用域 作用域是在运行时代码中的某些特定部分中变量,函数和对象的可访问性. 作用域(scope):一个变量的可用范围 作用域的类型 Javascript中有三种作用域: ...

  7. python内置作用域_python中的作用域

    python中的作用域分4种情况: L:local,局部作用域,即函数中定义的变量: E:enclosing,嵌套的父级函数的局部作用域,即包含此函数的上级函数的局部作用域,但不是全局的: G:glo ...

  8. 了解js基础知识中的作用域和闭包以及闭包的一些应用场景,浅析函数柯里化

    js基础知识中的作用域和闭包 一.作用域 1.作用域.自由变量简介 (1)作用域定义 (2)作用域实例演示 (3)自由变量定义 (4)自由变量实例演示 2.作用域链简介 (1)作用域链定义 (2)作用 ...

  9. SpringMVC中使用作用域对象完成数据的流转

    文章目录 SpringMVC中使用作用域对象完成数据的流转 [1] 作用域对象复习 [2] SpringMVC中使用作用域对象流转数据 [3] SpringMVC的Model对象的使用 SpringM ...

最新文章

  1. html元素的分类有哪些?
  2. SSMSSH项目中 springmvc 乱码问题解决
  3. 数据库进阶系列之三:使用Logminer解析Oracle日志
  4. 醉话没有测试(QA)的测试
  5. RabbitMQ管理(3)——Web端管理
  6. 离线计算成本节省的神兵利器
  7. 法国 计算机 转专业,在法国留学怎样换专业
  8. PDA与服务器时间同步
  9. 用MDT 2012为企业部署windows 7(三)--安装MDT 2012,ADK以及安装后情况
  10. matlab亮度对比度调节公式,图像编辑之对比度调整(亮度对比度的算法公式)
  11. 预算少怎么做ASO优化?
  12. 整理了上千个Python类库,简直太酷啦!
  13. java 月初_Java用于取得当前日期相对应的月初,月末,季初,季末,年初,年末时间...
  14. 使用Dhtml和poi导出excle表格出现Error Type:LoadXMl Incorrect Json错误
  15. 7-13 打印金字塔图案
  16. CS:APP CH02信息的表示和处理知识点总结
  17. 正確使用 SetCapture ReleaseCapture [譯]
  18. 开源ETL工具kettle系列
  19. html中在图片上写文字,用HTML代码在图片上写字
  20. HRBUST2343 巴啦啦能量(字符串,技巧)

热门文章

  1. [转]DPM2012系列之十:备份exchange2010数据库
  2. 12c adg添加数据文件报错处理ORA-01111
  3. 到成都去是联想的必然选择
  4. C++builder XE 安装控件 及输出路径
  5. 【hibernate框架】核心开发接口-saveOrUpdate方法与delete方法
  6. 再见了,Windows AutoRun!
  7. 去掉WIN7系统用户登陆界面(默认用户自动登录)
  8. openSUSE11.1 用Yast安装virtualbox 2.06
  9. Java基础篇:面向对象
  10. 核弹级漏洞!我把log4j扒给你看!