首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

全局作用函数作用、块级作用理解

1.前言 作用是任何一门编程语言中重中之重,因为它控制着变量与参数可见性与生命周期。很惭愧,我今天才深入理解JS作用..我不配做一个程序员.....开玩笑,什么时候理解都不晚,重要是理解了以后能不能深深地扎在记忆里,不能,那就写下来 2.块级作用 在一个代码块(括在一对花括号中一组语句)中定义所有变量在代码块外部是不可见。...ES6中新增概念,在ES5中是没有的,ES5中没有? 没有的时候我们代码也写好好,现在新增概念,我不用不行吗? 来,拋一个典型问题出来,你就明白块级作用出现重要性了。...在ES5时代,还没有块级作用这个概念,但是当时也有一种解决方法,那就是.. .. .. .. .....,是可以修改内部属性,数组同理; 5.总结 主要总结一下块级作用、以及块级作用出现意义,方便更好记住。

3K10

函数作用和块作用

函数作用 很对人认为 JavaScript 具有基于函数作用,意味着每声明一个函数都会为其自身创建一个气泡,而其他结构不会创建作用气泡。但事实上并不完全正确!...:a, bar, c bar 拥有自己作用气泡 同样全局作用也拥有自己作用气泡 a, bar, c 这些标识符都是属于 foo 作用气泡,因此无法从 foo 外部去对它们进行访问。...函数作用 在任意代码片段外部添加包装函数,可以将内部变量和函数定义“隐藏”起来,外部作用无法访问包装函数内部任何内容。虽然这种技术可以解决一些问题,但是它并不理想,因为会导致一些额外问题。..., 块作用 with with不仅是一个难以理解结构,同时也是块作用一个例子(块作用一种形式),用 with 从对象中创建出作用仅在 with 声明中而非外部作用有效 with(obj...本质上,声明一个函数内部变量或函数会在所处作用隐藏起来,这是有意为之良好软件设计原则。 但函数不是唯一作用单元。块作用指的是变量和函数不仅可以属于所处作用,有可以属于某个代码块。

2.4K20
您找到你想要的搜索结果了吗?
是的
没有找到

函数作用

如果加上函数名,该函数名只在函数体内部有效,在函数外部无效。...什么是函数声明前置 (1)变量声明前置 所谓变量声明前置就是在一个作用块中,所有的变量都被放在块开始出声明。...和变量声明前置一样,执行代码之前会先读取函数声明,只要函数在代码中进行了声明,无论它在哪个位置上进行声明,js引擎都会将它声明放在范围作用顶部。...它目的只有两个:一是不必为函数命名,避免了污染全局变量;二是IIFE内部形成了一个单独作用,可以封装一些外部无法读取私有变量。...[4] fn2 作用为 fnContext a = 20 // 改变了 fnContext 中 a 为 20 } console.log(a) // 20

83140

Kotlin | 作用函数

什么是作用函数(Scope Functions)? Kotlin 标准库包含了几个特殊函数,其目的是在调用对象上下文环境(context)中执行代码块。...当你在提供了 lambda 表达式对象上调用此类函数时,它会形成一个临时作用。在此作用内,你可以在不使用其名称情况下访问该对象,这些函数被称为作用函数。...由于这 5 个作用函数性质有些相似,所以大家可能经常不知道在哪种情况下该使用哪个函数,以至于最终放弃使用作用函数?,所以为了避免类似悲剧发生,我们首先来讨论一下他们之间区别以及使用场景。...区别 由于作用函数本质上非常相似,因此理解它们之间差异非常重要。...另一方面,如果省略了 this ,你就很难区分你操作函数或变量是外部对象还是接收者了,所以,context 对象作为一个接收者(this)这种方式推荐用于调用接收者(this) 成员变量或函数

91630

python函数(二):作用

我们在写函数时,时常需要引用全局变量,或对全局变量赋值。又或者偶尔遇到局部变量与全局变量同名。在处理这些问题时,python语言游戏规则是怎样?今天我们就来学习这方面的内容。 什么是作用?...在python语言里,在函数内部定义变量,仅在函数内有效。在函数外面定义变量对全局有效。我们把这种变量有效范围叫作变量作用。...也就是说,函数变量只对本函数有效,对外部没有影响。...for循环没有单独作用 for内部定义变量在循环结束后变量仍然有效。...如: foriin range(3): a=i print(a)#打印结果2 总结 简单总结一下变量作用规则: 由内向外、由近及远。

70350

Python基础语法-函数-函数作用

在 Python 中,函数作为代码模块化单位,可以实现代码重用和简化。函数具有自己作用,即变量可见范围,了解函数作用是编写高质量代码关键之一。...变量作用在 Python 中,变量作用可以分为局部作用和全局作用。全局变量是定义在函数外部变量,可以在程序任何地方访问。...如果在函数内部定义了一个同名局部变量,那么函数内部操作将只针对局部变量。如果函数内部想要访问全局变量,可以使用 global 关键字来声明。...my_func() 函数中定义了一个同名局部变量 count,值为 1,函数内部输出 1。但是,函数外部 count 仍然是全局变量,输出为 0。...函数内部将全局变量 count 值修改为 1,并输出 1。函数外部 count 也被修改为 1。

34831

python函数作用简介

1.定义:函数中变量取值地方; 2.函数变量名除了特殊声明为全局变量或本地变量,否则均为局部变量; 3.变量作用解析原则:LEGB原则,即: 变量名引进分为三个作用进行查找,首先是本地,再是函数内...(如果存在),之后才是全局变量,最后是内置作用(内置作用:内置函数所在模块范围); 在默认情况下,变量名赋值会创建或者改变本地已有的变量; 全局声明或非本地变量声明会将赋值变量名映射到模块文件内部作用...; LEGB机制: Python搜索四个作用,最先是本地作用(L);之后是上一层结构中def所在作用(E,函数嵌套才会出现),再是全局作用(G),最后才是内置作用(B) Python会在第一处能够找到这个变量名位置停下来

50540

Python编程 函数作用

前言 本章将会讲解Python编程中 函数作用。...一.函数 1.函数作用介绍 Python 中,程序变量并不是在哪个位置都可以访问,访问权限决定于这个变量是在哪里赋值 。...变量作用决定了在哪一部分程序可以访问哪个特定变量名称。...Python 作用一共有4种, 分别是:  L(local):局部作用,即函数中定义变量;  E(enclosing):嵌套父级函数局部作用,即包含此函数上级函数局部作用...,但不是 全局;  G(global):全局变量,就是模块级别定义变量;  B(build-in):内建作用,系统固定模块里面的变量,比如:int()等; """ 注意:if判断,for循环是没有作用概念

11720

JS学习系列 03 - 函数作用和块作用

函数作用 函数作用含义是指,属于这个函数任何声明(变量或函数)都可以在这个函数范围内使用及复用(包括这个函数嵌套内作用)。...当然可以从外部作用传递你需要任何东西,并将变量命名为任何你觉得合适文字。这对于改进代码风格是非常有帮助。...with 声明中而非外部作用域中有效。...总结 函数是 JavaScript 中最常见作用单元。块作用指的是变量和函数不仅可以属于所处函数作用,也可以属于某个代码块。...本质上,声明在一个函数内部变量或函数会在所处作用域中“隐藏”起来,这是有意为之良好软件设计原则。 有些人认为块作用不应该完全作为函数作用替代方案。

1.6K10

《你不知道JavaScript》:函数作用和块作用

常见作用形式 在JS中,最常见作用函数作用,其他结构通常不会创建作用。但随着js迭代,现在也有了块作用,将在后面讲到。...而函数作用含义是指:属于这个函数全部变量都可以在整个函数范围内使用及复用,包括在嵌套函数作用域中也可以使用。 函数作用常规套路是,先声明一个函数,然后向函数中添加代码实现。...console.log(fn); //ReferenceError: fn is not defined 上例中,假设代码所处作用为全局作用,foo函数访问作用是全局作用,fn函数访问作用被绑定在函数表达式自身函数中而非所在全局作用...此时,fn变量被隐藏在自身作用域中就意味着不会非必要污染外部作用。 在前文函数表达式举例中,我还列出了匿名函数表达式,这种函数表达式常用之地是回调函数,它是没有名称标识符。...for(var i=0; i<10; i++){ console.log(i); } console.log('外部:'+i); // 外部:10 上例外部作用可以访问到i值为10。

93630

JS学习系列 03 - 函数作用和块作用

函数作用 函数作用含义是指,属于这个函数任何声明(变量或函数)都可以在这个函数范围内使用及复用(包括这个函数嵌套内作用)。...当然可以从外部作用传递你需要任何东西,并将变量命名为任何你觉得合适文字。这对于改进代码风格是非常有帮助。...with 声明中而非外部作用域中有效。...总结 函数是 JavaScript 中最常见作用单元。块作用指的是变量和函数不仅可以属于所处函数作用,也可以属于某个代码块。...本质上,声明在一个函数内部变量或函数会在所处作用域中“隐藏”起来,这是有意为之良好软件设计原则。 有些人认为块作用不应该完全作为函数作用替代方案。

10810

Python基础语法-函数-函数作用(二)

函数内部输出 count 值,输出为 1。但是,函数外部没有定义 count 变量,因此会报错。作用嵌套在 Python 中,函数可以嵌套定义。...内部函数可以访问外部函数变量,但是外部函数不能访问内部函数变量。如果内部函数定义了同名变量,那么内部函数变量会覆盖外部函数同名变量。...例如:def outer_func(): count = 0 def inner_func(): nonlocal count # 声明 count 为外部函数变量...内部定义了一个函数 inner_func(),并访问了外部函数变量 count,将其值加 1 并输出 1。再次输出外部函数变量 count,输出为 1。...在内部函数中修改外部函数变量,需要使用 nonlocal 关键字来声明变量是外部函数变量。如果不声明,Python 会将其认为是新局部变量,导致外部函数变量没有被修改。

31841

JavaScript 函数作用和块作用不完全指北

} } foo(); 所以,在任意代码片段外部添加包装函数, 可以将内部变量和函数定义“隐藏” 起来, 外部作用无法访问包装函数内部任何内容。...(function foo(){ .. }) 作为函数表达式意味着 foo 只能在 .. 所代表位置中被访问, 外部作用则不行。foo 变量名被隐藏在自身中意味着不会非必要地污染外部作用。...console.log( a ); // 2 匿名也就意味着没有名字,不会被外部调用,自然不会污染外部作用。...i,但是实际上,变量i 已经被绑定到外部作用(示例是全局作用)。...但是结果却是,在使用 var 声明变量时,它写在哪里都是一样,最终都将会属于外部作用

60410

【Kotlin】扩展函数作用分析 ( 扩展函数导入 | 扩展函数重载 | 扩展函数作用优先级 )

扩展函数 作用 总结 II . 扩展函数 作用 III . 扩展函数 作用 简单调用示例 IV . 扩展函数 重载分析 V . 扩展函数 重载代码示例 VI ....扩展函数 作用 优先级 分析 VII . 扩展函数 作用 优先级 代码示例分析 I ....扩展函数 作用 总结 ---- 扩展函数作用总结 : ① 扩展函数作用 : 扩展函数使用需要导入包 , 如果在本包中使用 , 可以默认不导入包 ; ② 扩展函数可以重载 : 函数名相同 , 函数签名不同扩展函数可以同时定义...扩展函数 作用 ---- 1 . 扩展函数作用 : 定义一个扩展函数 , 默认只能在本包中调用 , 如果在别的包调用扩展函数 , 需要导入扩展函数 ; 2 ....扩展函数 作用 优先级 分析 ---- 本节讨论是在不同包定义相同函数签名扩展函数调用问题 1 .

78120

Python 变量作用函数

,第二种是全局变量.定义在函数内部变量拥有一个局部作用,定义在函数拥有全局作用,而局部变量只能在其被声明函数内部访问,全局变量则可以在整个程序范围内访问....变量作用如下: ● L(Local):局部作用 ● E(Enclosing):闭包函数函数中 ● G(Global):全局作用 ● B(Built-in):内建作用 变量属性与执行依据...● 当全局变量与局部变量同名时:在定义局部变量子程序内,局部变量起作用,在其它地方全局变量起作用 ● 当内部作用想修改外部作用变量时,就要用到global和nonlocal关键字了 ●...闭包是由函数及其相关引用环境组合而成实体(闭包=函数+引用环境)这个从字面上很难理解,Python中闭包从表现形式上定义(解释)为:如果在一个内部函数里,对在外部作用(但不是在全局作用)变量进行引用...__name__ 'adder' >>> c(10) 20 如上代码,在一个内部函数里:adder(y)就是这个内部函数,对在外部作用(但不是在全局作用)变量进行引用:x就是被引用变量,x在外部作用

2.3K20

Go 语言基础--函数&作用

访问标示 go变量通常会出现在函数内部(局部变量,只出现在函数体内,只能够在函数内部使用),函数外变量(全局变量,可以通过包访问),函数参数(形式参数) go访问形式并没有一个特殊标识符来标记,而是通过首写字母大小来控制...{···} 值传递&引用传递&指针传递 值传递:调用函数时将实际参数copy一份到函数中 引用传递:调用函数时将实际参数地址传递到函数中 指针传递:将实际变量指针传递到函数中 值传递&引用传递这些都是各种语言中经常讨论一个话题...,比如说Java 中就是完全按值传递,基础类型时copy一份传递到函数中,在函数内部对这个值进行更新毫无作用,传递一个对象时候copy一份引用值传递到函数内部,这也就是为什么 对这个引用值进行操作毫无作用...对于基础变量,就是传递了一个值拷贝 对于map或者数组,将实际变量地址拷贝进行传递 对于结构体,传递是结构体一份拷贝,注意一点内部变量也是进行copy。...,函数外原指针不会受到影响 } go 指针不像是C指针那么危险,会正常有空指针,但是不会发生野指针,这也算是go 指针一个优势点吧。

72730

函数创建.作用,自调用

和php类型不详说了function funname{ }创建         function sum(x,y){             ...        qiuhe=sum(5,3);         alert(qiuhe);         qiuhe2=sum(1,8);         document.write(qiuhe2); 函数作用...: ps:在函数外声明变量作用为全局变量,任何地方都可以使用             函数内部通过var声明变量是局部变量,内部没有通过var创建变量是全局变量             作用不是全局变量就是局部变量...        qiuhe=sum(5,3);         alert(qiuhe);         qiuhe2=sum(1,8);         document.write(qiuhe2); 函数自调用...:    //用括号将函数体包围,等同于调用函数名,加括号表示调用;自调用等于括号包围函数体加括号         (function test(){ alert('函数自调用,你好年轻人!')})

63820

【深度剖析】JavaScript中块级作用函数作用

那 JavaScript 其他结构能生成新作用吗? 3.1 函数作用 • 在之前词法作用域中可见 JavaScript 具有基于函数作用,这也就意味着一个函数都会创建一个新作用。...**模块管理** 3.3 函数作用 • 现在知道,在任意代码片段外部添加包装函数,可将内部变量和函数定义 "隐藏" 起来,外部作用无法访问包装函数内部任何内容。...作为函数表达式意味着 foo 只能在 ... 所代表位置中被访问,外部作用则不行。...i, 而忽略 i 会绑定在外部作用(函数或全局)中。...• 当使用 var 声明变量时,它写在哪里都是一样,因为它最终都会属于外部作用

17510
领券