首页 > 其他分享 >作用域

作用域

时间:2024-03-10 20:25:31浏览次数:15  
标签:变量 作用域 代码 词法 何处 动态

作用域是什么?

作用域

作用域是根据名称查找变量的一套规则,作用域是在运行时代码中的某些特定部分中变量,函数的可访问性。换句话说,作用域决定了代码区块中变量和其他资源的可见性。

作用域链

作用域链指的是作用域与作用域之间形成的链条。当我们查找一个当前作用域没有定义的变量(自由变量)的时候,就会向上一层作用域寻找,直到找到该变量,或抵达到全局作用域为止。

词法作用域和动态作用域

作用域共有两种主要的工作模式。第一种是最为普遍的,被大多数编程语言所采用的词法作用域,另一种叫做动态作用域,如 Bash 脚本。

词法作用域

词法作用域是一套引擎如何寻找变量以及会在何处找到变量的规则。词法作用域最重要的特征是它的定义过程发生在代码的书写阶段(假设你没有使用 eval 或 with),即你写好后你的作用域就定了

JavaScript 并不具有动态作用域。它只有词法作用域,简单明了,但是 this 机制某种程度上很像动态作用域

主要区别:词法作用域是在写代码或者说声明时确定的,而动态作用域是在运行时确定的(this 也是!)

词法作用域关注函数在何处声明,而动态作用域关注函数从何处调用

标签:变量,作用域,代码,词法,何处,动态
From: https://www.cnblogs.com/zhanxinbing/p/18064650

相关文章

  • Spring框架Bean对象的五个作用域
    ​ 一、前言:Bean对象简介在Spring项目中,那些由Spring IoC容器所管理的对象,称为bean。简单地讲,bean就是由Spring容器初始化、装配及管理的对象,除此之外,bean就与应用程序中的其他对象没有什么区别了。 而bean定义以及bean相互间的依赖关系将通过配置元数据来描述。上一段描述......
  • 变量、常量、作用域
    变量变量是什么:就是可以变化的量例如咱们上学时学习的一元一次方程的X=Y既是变量;X和Y可以是任何类型的值,具体有我们定义Java是一种强类型语言,每个变量都必须声明其类型Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域注意事项每个变量都......
  • 流程控制【代码块与作用域】【选择结构】【循环结构】
    @目录代码块与作用域选择结构循环结构源码:Giteehttps://gitee.com/drip123456/java-seGIthubhttps://github.com/Drip123456/JavaSE专栏:JavaSE笔记专栏代码块与作用域在开始流程控制语句之前,我们先来介绍一下代码块和作用域。不知道各位小伙伴是否在一开始就注意到了,为......
  • 函数进阶(作用域、内置函数、defer、panic、recover)
    目录一、作用域1.全局作用域2.局部作用域(1)局部变量和全局变量的名不同(2)局部变量和全局变量的名相同二、函数类型与变量三、defer方法1.什么是defer2.defer的执行时机3.defer语句中函数参数为执行函数4.for循环中的defer四、内置函数五、panic和recover1.简单示例一、作用......
  • C# 的运算符和作用域
    //C#运算符//表达式表达式有操作数(operand)和运算符(operator)构成;//常见的运算符+-*/和new//x??y如果x为null,则计算机过为y否则计算结果为x;//匿名函数(lamba表达式)//前置的++直接执行后......
  • 作用域
    publicclass作用域{//类变量static:从属于类staticdoublesalary=2500;//实例变量:从属于对象(类)-方法外、在类里/*1.如果不自行初始化,这个类型的默认值为0,0.02.布尔值:默认为false3.除了基本类型,其余的默认值都是null*/Stringname......
  • Go语言精进之路读书笔记第18条——理解Go语言代码块与作用域
    18.1Go代码块与作用域简介Go规范定义了如下几种隐式代码块。宇宙代(Universe)码块:所有Go源码都在该隐式代码块中,就相当于所有Go代码等最外层都存在一对大括号。包代码块:每个包都有一个包代码块,其中放置着该包都所有Go源码文件夹代码块:每个文件都有一个文件代码块,其中包含着该......
  • 12. C++ 类其实也是一种作用域
    C++类其实也是一种作用域类其实也是一种作用域,每个类都会定义它自己的作用域。在类的作用域之外,普通的成员只能通过对象(可以是对象本身,也可以是对象指针或对象引用)来访问,静态成员既可以通过对象访问,又可以通过类访问,在类内用typedef定义的类型只能通过类来访问。下面的例子使......
  • scope / 作用域(C变量的作用域)
    scope/作用域(C变量的作用域)参考:CPrimerPlus第6版第12章存储类别、链接和内存管理目录scope/作用域(C变量的作用域)1.定义2.分类2.1.blockscope/块作用域2.1.1.定义2.1.2.函数的形式参数2.1.3.没有花括号的块2.2.functionscope/函数作用域2.3.functionprot......
  • vue3 在 TypeScript 文件中,const route = useRoute();route undefined 不能在顶层作用
    ts文件内部不能使用import{useRoute}from'vue-router';constroute=useRoute();routeundefined在TypeScript文件中,不能在顶层作用域内使用Vue组件的Hooks函数,例如useRoute。Hooks函数只能在Vue组件中使用。如果你想在TypeScript文件中获取当前路由信息,你可......