JavaScript采用的是词法作用域

1.词法作用域

即函数定义时,即确定的作用域。js中的作用域链,在函数声明时候,就已经确定了,无论函数在何处调用,其作用域变量的查找都是按照定义是包含关系去查找。

2.动态作用域

变量的作用域与函数的调用地点有关,在不同的函数中调用,变量的查找会沿着调用函数向上查找。

举例:

var a = 2;
function foo() {console.log( a );
}
function bar() {var a = 3;foo();
}
bar();

1.在词法作用域,a的值会先在foo中查找,没有的话到全局中查找,a=2
2.在动态作用域中,a的值先在foo中查找,没有的话到其调用函数中查找,即bar中查找,a = 3

转载于:https://www.cnblogs.com/mengff/p/6909671.html

词法作用域和动态作用域相关推荐

  1. JavaScript之词法作用域和动态作用域

    作用域 作用域是指程序源代码中定义变量的区域. 作用域规定了如何查找变量,也就是确定当前执行代码对变量的访问权限. JavaScript 采用词法作用域(lexical scoping),也就是静态作 ...

  2. 一文搞懂:词法作用域、动态作用域、回调函数、闭包

    把以前一直只限于知道,却不清晰理解的这几个概念完完整整地梳理了一番.内容参考自wiki页面,然后加上自己一些理解. 词法作用域和动态作用域 不管什么语言,我们总要学习作用域(或生命周期)的概念,比如常 ...

  3. 深入学习js之——词法作用域和动态作用域

    开篇 当我们在开始学习任何一门语言的时候,都会接触到变量的概念,变量的出现其实是为了解决一个问题,为的是存储某些值,进而,存储某些值的目的是为了在之后对这个值进行访问或者修改,正是这种存储和访问变量的 ...

  4. JavaScript词法作用域和动态作用域

    2019独角兽企业重金招聘Python工程师标准>>> 作用域 作用域是指代码中定义变量的区域. 作用域规定了如何查找变量,也就是确定当前代码执行对变量的访问权限 JavaScrip ...

  5. 静态作用域与动态作用域的区别(转)

    在计算机程序设计中,变量是名字(name)与实体(entity)的绑定(binding).一段程序代码中所用到的名字并不总是有效(或者说:可用的),而限定这个变量名字具有可用性的代码范围就是这个名字的 ...

  6. c/c++中全局作用域,局部作用域,语句作用域,类作用域,命名空间作用域和文件作用域的区别与联系

    C++ 变量根据定义的位置的不同的生命周期,具有不同的作用域,作用域可分为 6 种:全局作用域,局部作用域,语句作用域,类作用域,命名空间作用域和文件作用域. 从作用域看: 全局变量具有全局作用域.全 ...

  7. javascript 全局作用域,函数作用域详解(配图解)

    函数作用域,我们可以理解为:就是一块"地盘",一个代码段所在的区域,他是静态的(相对于执行上下文对象),在编写代码时就确定了. 分类:全局作用域,函数作用域 作用:隔离变量,在不同 ...

  8. JavaScript基础08-day10【函数的返回值、实参、立即执行函数、方法、全局作用域、函数作用域、提前声明、this、工厂方法创建对象、构造函数】

    学习地址: 谷粒学院--尚硅谷 哔哩哔哩网站--尚硅谷最新版JavaScript基础全套教程完整版(140集实战教学,JS从入门到精通) JavaScript基础.高级学习笔记汇总表[尚硅谷最新版Ja ...

  9. 16-作用域(全局作用域及局部作用域)

    16-作用域(全局作用域及局部作用域) //作用域 全局作用域 函数作用域 //函数的内部环境可以访问到所有外部环境的值,但是外部环境不能访问内部环境的值 //注意事项 //在全局变量和局部变量不同名 ...

最新文章

  1. cpu满了卡住 linux_Linux系统中CPU占用率较高问题排查思路与解决方法
  2. linux系统利用可执行文件的Capabilities实现权限提升
  3. CF510C Fox And Names——拓扑排序练习
  4. 【HDOJ】3948 The Number of Palindromes
  5. 艾伟_转载:.NET 4.0新特性-- Corrupted State Exceptions
  6. 电脑装机完没有efi_电脑装机如何选内存?看完这篇就全懂了
  7. 【渝粤教育】国家开放大学2018年春季 0177-21T电机学(二) 参考试题
  8. SharePoint 2013的100个新功能之搜索(一)
  9. MySQL GROUP BY 语句
  10. vm中linux物理内存不足解决方案
  11. 2021年中国中级订单选择器(3至8+m)市场趋势报告、技术动态创新及2027年市场预测
  12. 这个春天我能感觉的到
  13. matlab 剪毛刺,MATLAB消除曲线毛刺Outlier Detection and Removal [hampel]
  14. 这些“黑话”只有PCB设计制造内行人才懂!附PCB术语及英文对照
  15. 华为鸿蒙dba,人生中最重要的决策|读在职博士DBA
  16. UIQ 3 概念认识
  17. 英伟达 GTC 中国站明日开幕,又将揭秘哪些黑科技?
  18. 期盼小豆发芽(2008.7.20)
  19. 盛京剑客系列33:基本面真谛
  20. 〖Python 数据库开发实战 - MySQL篇①〗- 数据库简介

热门文章

  1. OpenCV+python:直方图的概念及绘制(Histogram)
  2. OpenCV图像序列生成视频,MATLAB图像生成avi视频,image2video。
  3. python udp广播_udp单播-广播-组播-python例子 | 学步园
  4. python字典方法汇总_python字典的操作总结
  5. mysql loop嵌套_MySQL中Nested-Loop Join算法小结
  6. java 位运算 多个状态_位运算表示对象所处状态
  7. java socket 包头包体_自定义协议封装包头、包体
  8. android picasso源码下载,Picasso:一个专为Android制作的强大的图片下载和缓存库
  9. 解决Android Studio中DDMS缺少File Explore视窗的方法
  10. 线性代数--矩阵、向量