首页
学习
活动
专区
工具
TVP
发布
您找到你想要的搜索结果了吗?
是的
没有找到

你所知道的JS变量作用

变量作用,指的是变量在脚本代码中的可读、可写的有效范围,也就是脚本代码中可以使用这个变量的区域。...在ES6之前,变量作用主要分为全局作用、局部作用(也称函数作用)两种;在ES6及其之后,变量作用主要分为全局作用、局部作用、块级作用这3种。...相应作用变量分别称为全局变量、局部变量、块级变量。全局变量声明在所有函数之外;局部变量是在函数体内声明的变量或者是函数的命名参数;块级变量是在块中声明的变量,只在块中有效。...变量作用跟声明方式有密切的关系。使用var声明的变量作用有全局作用和局部作用,没有块级作用;使用let和const声明的变量有全局作用、局部作用和块级作用。...由于var支持变量提升,所以var变量的全局作用是对整个页面的脚本代码有效;而let和const不支持变量提升,所以let和const变量的全局作用指的是从声明语句开始到整个页面的脚本代码结束之间的整个区域

53820

说说js变量作用和垃圾回收

JS 中每个执行环境都有一个与之关联的变量对象,在 Web 浏览器中,全局执行环境是 window 对象,因此所有全局变量和函数都是作为 window 对象的属性和方法创建的。...每个环境可以向上搜索作用链 ,以查询变量和函数名;但任何环境都不能通过向下搜索作用链而进入另一个执行环境。参考 前端面试题详细解答延长作用链。...这两个语句都会在作用链的前端添加一个变量对象。对 with 语句来说,会将指定的对象添加到作用链中;对于 catch 语句来说,会创建一个新的变量对象,其中包含的是被抛出的错误对象的声明。...没有块级作用。JavaScript 没有块级作用经常会导致理解上的困惑 。...虽然 js 没有块级作用,但我们可以用匿名函数来模仿块级作用~,语法格式如下:(function() { // 这里是块级作用;}) ();将函数声明包含在一对圆括号里,表示它实际上是一个函数表达式

53630

细说js变量作用和垃圾回收

JS 中每个执行环境都有一个与之关联的变量对象,在 Web 浏览器中,全局执行环境是 window 对象,因此所有全局变量和函数都是作为 window 对象的属性和方法创建的。...每个环境可以向上搜索作用链 ,以查询变量和函数名;但任何环境都不能通过向下搜索作用链而进入另一个执行环境。延长作用链。...这两个语句都会在作用链的前端添加一个变量对象。对 with 语句来说,会将指定的对象添加到作用链中;对于 catch 语句来说,会创建一个新的变量对象,其中包含的是被抛出的错误对象的声明。...没有块级作用。JavaScript 没有块级作用经常会导致理解上的困惑 。...虽然 js 没有块级作用,但我们可以用匿名函数来模仿块级作用~,语法格式如下:(function() { // 这里是块级作用;}) ();将函数声明包含在一对圆括号里,表示它实际上是一个函数表达式

53820

JS作用作用

JS中的作用就是在一定的空间范围内对数据进行读写操作。 在JS中一个变量作用(scope)是程序中定义这个变量的区域。 变量有全局变量和局部变量两种。...下面就要借助JS作用链来更好的理解作用了。 在此之前,先要明确个概念,即执行环境和作用是两个完全不同的概念。 函数的每次调用都有与之紧密相关的作用和执行环境。...搜索过程始终从作用链的前端开始,然后逐级地向后(全局执行环境)回溯,直到找到标识符为止。 此外还要讲下JS作用域中的块级作用JS中是没有块级作用这个概念的。 什么是块级作用呢?...JS并不支持块级作用,它只支持函数作用,而且在一个函数中的任何位置定义的变量在该函数中的任何地方都是可见的。 那么JS又该怎么拥有块级作用呢?...根据“在一个函数中定义的变量,当这个函数调用完之后,变量会被销毁”的特性,来模拟出JS的块级作用

4.1K30

Python变量作用

今天我们要说的是:变量作用 什么是作用呢? 作用就是某一个事件或者物体在某种情况下产生的特定的作用或效果(画外音:能不能说人话?)...这就是作用的理解,那么变量作用,就是变量在不同环境下所表达的角色(当然是不同的) 好了,如果你理解了变量作用的概念,那么下面那就让我们来看看,在Python中,变量作用有几种呢?...1.局部作用(Local) 局部作用作用在一个函数、方法等内部,局部作用作用范围最小 2.闭包(Enclosing) 闭包表示变量在本函数外的函数中的变量作用 3.全局作用(Global)...全局作用一般是定义在函数体之外的,这里的变量通常对全局有效 4.内建作用(Building-in) 内建作用作用就是Python语言内建的函数范围,比如我们使用一个print(),一个if()等等...因为越是小范围的变量越精确,也就是说作用越小的变量,使用起来将会越准确 (这与我们人类的语言使用习惯有关) 这四个作用域中,最常用的就是局部作用、全局作用和内建作用,闭包在简单的程序设计中基本不常用

90060

Python变量作用

变量作用   Python 中,程序的变量并不是在哪个位置都可以访问的,访问权限决定于这个变量是在哪里赋值的。   变量作用决定了在哪一部分程序可以访问哪个特定的变量名称。...Python的作用一共有4种,分别是: L (Local) 局部作用 E (Enclosing) 闭包函数外的函数中 G (Global) 全局作用 B (Built-in) 内建作用 以 L...NAME='John' #NAME在全局作用域中 def fun(): name='July' #闭包函数外的函数 def fun2(): name='Jack'...#局部作用 print(name) fun() Jack Python 中只有模块(module),类(class)以及函数(def、lambda)才会引入新的作用,其它的代码块(如...if/elif/else/、try/except、for/while等)是不会引入新的作用的,也就是说这这些语句内定义的变量,外部也可以访问: if True: a=123 print(a)

1K20

Python 变量作用

本文内容:Python 变量作用 ---- Python 变量作用 1.变量作用 2.局部变量 3.全局变量 4.同名的局部变量和全局变量 5.global 语句 ---- 1.变量作用...Python 中规定每个变量都有它的作用, 即变量只有在作用范围内才是可见可用的。...作用能避免程序代码中的名称冲突,在一个函数中定义的变量名称不会干扰另外一个函数内的变量。这有助于使函数更加独立。 根据作用范围的大小,可以将作用分为全局作用和局部作用。...2.局部变量 局部变量仅仅在局部作用内可用。在局部作用之外,该变量是不可见的。 如果变量是在函数体内被创建(首次赋值)的,这个变量就只能在该函数体内使用,是这个函数体的局部变量。...在这种情况下,在局部作用内,可见的是局部变量,全局变量被暂时隐藏起来。

66840

变量作用

变量作用 在JavaScript中,根据作用的不同,变量可以分为两种: 全局变量 局部变量 1. 全局变量 在全局作用下声明的变量叫做全局变量(在函数外部定义的变量)。...全局变量在代码的任何位置都可以使用 在全局作用下 var 声明的变量 是全局变量 特殊情况下,在函数内不使用 var 声明的变量也是全局变量(不建议使用) 2.局部变量 在局部作用下声明的变量叫做局部变量...(在函数内部定义的变量) 局部变量只能在该函数内部使用 在函数内部 var 声明的变量是局部变量 函数的形参实际上就是局部变量 3.全局变量和局部变量的区别 全局变量:在任何一个地方都可以使用...,只有在浏览器关闭时才会被销毁,因此比较占内存 局部变量:只在函数内部使用,当其所在的代码块被执行时,会被初始化;当代码块运行结束后,就会被销毁,因此更节省内存空间

70831

夯实JS系列--变量作用和内存问题

执行环境及其作用 这大概是一个非常基础也是重要的部分,后续会在进阶里面详细展开。 执行环境定义了变量或者函数有权访问的其他数据,决定了他们的行为。...全局执行环境知道应用程序退出才被销毁(如关闭网页等) 当代码在一个环境中执行的时候,会创建变量对象的一个作用链。作用链的用途,是保证对执行环境有权访问的变量和函数的有序访问。...作用链的前端,始终是当前执行的代码所在的 环境的变量对象。全局执行环境始终是作用链的最后一个对象。 标识符的解析也就是沿着作用链一级一级的搜索的过程。...延长作用链 虽然执行环境的类型只有两种。局部的和全局的。但是还有一种方法可以延长作用链。 这是因为有些语句可以在作用链的前端临时添加一个变量对象,改变量对象会在代码执行后被移除。...关于作用、环境之类的话题后续会再细说。这里作为基础篇,就先介绍到这里。 垃圾收集 很开心js不需要你来收拾垃圾!好此篇完结! 好吧~虽然我们不收拾垃圾,但是也是要稍微了解下js是如何收拾垃圾的。

69320

JS基础——作用作用

作用 [[scope]],函数定义时自动生成的一个隐式属性,是用来存储函数作用链 Scope Chain的容器。作用链是用来存储函数执行上下文 AO和全局执行上下文 GO的容器。...函数被定义时,系统会为函数生成[[scope]],[[scope]]中保存该函数的作用链,并从该作用链的起始位置开始存储当前环境的作用链。...函数被定义后&将要执行前会生成函数本身的AO,并将其插入作用链的起始位置。...,并将GO插入到作用链的起始位置。...函数a被执行时,此时函数b也被定义,函数b的[[scope]]也在此时生成,其中存储函数b的作用链,并将当前环境的作用链插入函数b作用链的起始位置,即函数a的AO和GO。

3.4K10

变量作用

动态作用 无法读取到全局变量的原因, 是变量的值在上层函数中已经被修改了, 其原本的值已经不存在了. 如何实现真正的局部变量, 保证不会对全局变量造成污染呢?...动态作用读取变量的结果, 其实与上方的回写变量的方式差不多, 不同的是, 动态作用保留了全局变量原始的值....静态作用 静态作用也是通过变量的对照表来实现, 与动态作用不同的是, 每个函数能看到的变量对照表只有自己的和全局的, 上面的函数调用, 换成静态作用大概如下: ?...这样就能让函数绕过上层, 直接访问全局变量了. 现象 了解了变量作用相关内容, 也就能够解释最开始遇到的现象了....在 Python 中有两个关键字对变量进行声明: global: 声明全局变量, 既通过静态作用的方式查找变量 nolocal: 通过动态作用的方式查找变量 当然, Python中通过上面关键字标识的变量修改

90820

JavaScript变量作用

当代码在一个环境中执行时,会创建变量对象的一个作用链。作用链的作用是保证执行环境有权访问的变量和函数的有序访问。作用链的前端,始终都是当前执行的代码有在环境的变量对象。...如果这个对象是函数,则将其活动对象作为变量对象。作用链中的下一个变量对象来自包含环境,一直延续到全局执行环境。因此,全局执行环境的变量对象始终在作用链的最后一个对象。...,能够访问到全局作用链中的name。...作用链的延长,有些语句可以在作用的顶端临时增加一个变量对象,该变量对象会在代码执行后被移除。当执行语句执行到下面的语句,作用链就会被延长。try-catch,with。...这两个语句都会在作用链的前端增加一个变量对象。对于with语句来说,会将指定的对象添加到作用链中。对catch语句来说,会添加一个新的变量对象。with关键字为改变变量作用

77890

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券