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

【JavaScript】作用 ① ( JavaScript 作用 | 全局作用 | 局部作用 | JavaScript 变量 | 全局变量 | 局部变量 )

可维护性 , 避免 命名冲突 , 在不同的作用域中 , 可以使用相同的名称 ; 2、全局作用 局部作用 JavaScript 的 作用 分为 全局作用 局部作用 两种类型 : 全局作用...: 在代码 的 任何地方都能访问到的变量就处于全局作用域中 , 具体指的就是 标签中 , 或者 单独的 js 文件中 ; 局部作用 : 在 代码块 内 定义 的变量具有局部作用...变量 1、全局变量 局部变量 JavaScript 变量 根据 其 被声明的 作用类型 , 分为 全局变量 : 在 全局作用 声明的变量 , 就是全局变量 , 全局作用就是 ... 标签中 或者 js 文件中 ; 在 函数外部 声明的变量 ; 特殊情况 : 在 全局作用域中 没有使用 var 声明 , 而直接赋值使用的变量 , 也是 全局变量 ; 局部变量...没有使用 var 声明 , 而直接赋值使用的变量 , 也是 局部变量 ; 2、全局变量 局部变量 生命周期 全局变量 局部变量 区别 : 全局变量 在 任何地方 都可以使用 , 在 浏览器 关闭时

10810

Python 作用局部作用全局作用使用 global 关键字

这被称为作用局部作用 在函数内部创建的变量属于该函数的局部作用,并且只能在该函数内部使用。...代码的主体部分创建的变量是全局变量,属于全局作用。...全局变量可以在任何作用域中使用,包括全局作用局部作用。...,Python 将把它们视为两个不同的变量,一个在全局作用(函数外部)中可用,另一个在局部作用(函数内部)中可用: 示例:该函数将打印局部变量 x,然后代码将打印全局变量 x: x = 300 def...myfunc(): x = 200 print(x) myfunc() print(x) global 关键字 如果需要创建一个全局变量,但又受限于局部作用,可以使用 global 关键字

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

JS作用作用

JS中的作用就是在一定的空间范围内对数据进行读写操作。 在JS中一个变量的作用(scope)是程序中定义这个变量的区域。 变量有全局变量和局部变量两种。...局部变量的作用局部性的,如函数体内声明的变量就只在函数体内部有定义,函数的参数也是局部变量,也只在函数体内部有定义。...下面就要借助JS作用链来更好的理解作用了。 在此之前,先要明确个概念,即执行环境作用是两个完全不同的概念。 函数的每次调用都有与之紧密相关的作用执行环境。...作用链包含了执行环境栈中的每个执行环境对应的变量对象。通过作用链,可以决定变量的访问标识符的解析。 注意:全局执行环境的变量对象始终都是作用链的最后一个对象。...搜索过程始终从作用链的前端开始,然后逐级地向后(全局执行环境)回溯,直到找到标识符为止。 此外还要讲下JS作用域中的块级作用JS中是没有块级作用这个概念的。 什么是块级作用呢?

4.1K30

JS进阶:作用作用

ES6 之前 JavaScript 没有块级作用,只有全局作用函数作用。ES6的到来,为我们提供了‘块级作用’,可通过新增命令letconst来体现。...2.全局作用函数作用 在代码中任何地方都能访问到的对象拥有全局作用,一般来说以下几种情形拥有全局作用: 最外层函数 和在最外层函数外面定义的变量拥有全局作用 var outVariable...全局作用有个弊端:如果我们写了很多行 JS 代码,变量定义都没有用函数包括,那么它们就全部都在全局作用域中。这样就会 污染全局命名空间, 容易引起命名冲突。...因为放在里面的所有变量,都不会被外泄暴露,不会污染到外面,不会对其他的库或者 JS 脚本造成影响。这是函数作用的一个体现。...函数作用,是指声明在函数内部的变量,全局作用相反,局部作用一般只在固定的代码片段内可访问到,最常见的例如函数内部。

2.6K20

局部变量的作用生存周期

变量定义的三种情况 (1)在函数开头定义 (2)在函数的内部定义 (3)在复合语句块内部定义 局部变量 定义在函数内部的变量只能在函数内部引用,同样定义在复合语句块中的变量只是在复合语句块内有效...将这种变量称为“局部变量”,顾名思义,这些变量的作用仅仅是在函数内部或复合语句块内。...i; printf("%d\n",s); } 这样的代码在编译的时候就会报错,因为我们在复合语句块内定义一个 整型 i = 1,其作用是复合语句块内,若我们想在复合语句块外用引用该变量是不可行的...//[Error] 'i' was not declared in this scope //错误提示同我们在复合语句块中引用局部变量是相同的。...上述例子虽然简单,但是也直白直观的感受到局部变量的作用生命周期。我们在实际写代码的过程中,一定要注意局部变量的引用。

35710

闭包 + 局部作用 === 如鱼得水

《你不知道的JavaScript》第一部分作用闭包第4篇。 在掌握作用的前提下,才能真正理解识别闭包。...虽然for循环出来了五个延迟函数,但是根据作用的工作原理,这五个延迟函数是被封闭在for循环所处的全局作用内的。这个全局作用域中的变量i此时值已是6。...理解上面的原因,需要理解两个知识点:js中同步异步的执行顺序原理、作用的工作原理。 找出了问题的原因,解决办法也就浮出水面了。...如果能够让每个延迟函数time()都处于一个局部作用域中,并且该局部作用域中存在相应的变量i,让延迟函数timer()来访问该变量,不就行了么?创建局部作用可以使用匿名函数自执行(IIFE)来做。...当函数可以始终记住并访问其所在作用,即使该函数在该作用之外执行,这种情况就产生了闭包。 闭包的形成需要两要素:存在访问目标的局部作用、函数始终保持对该作用的引用。

58530

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

在 ES5 及之前版本,JavaScript 只拥有函数作用,没有块作用(with try...catch 除外)。在 ES6 中,JS 引入了块作用,{ } 内是单独的一个作用。...由于标识符 a、b、c bar都属于函数 foo 的作用,所以在全局作用域中访问会报错,因为它们都没有定义,但是在函数 foo 内部,这些标识符都是可以访问的,这就是函数作用。...想像一下,如果所有的变量函数都在全局作用域中,当然我们可以在内部的嵌套作用域中访问它们,但是因为暴露了太多的变量或函数,它们可能被有意或者无意的篡改,以非预期的方式使用,这就导致我们的程序会出现各种各样的问题...块作用 ES5 及以前 JavaScript 中具有块作用的只有 with try...catch 语句,在 ES6 及以后的版本添加了具有块作用的变量标识符 let const 。...总结 函数是 JavaScript 中最常见的作用单元。块作用指的是变量函数不仅可以属于所处的函数作用,也可以属于某个代码块。

1.6K10

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

在 ES5 及之前版本,JavaScript 只拥有函数作用,没有块作用(with try...catch 除外)。在 ES6 中,JS 引入了块作用,{ } 内是单独的一个作用。...由于标识符 a、b、c bar都属于函数 foo 的作用,所以在全局作用域中访问会报错,因为它们都没有定义,但是在函数 foo 内部,这些标识符都是可以访问的,这就是函数作用。...想像一下,如果所有的变量函数都在全局作用域中,当然我们可以在内部的嵌套作用域中访问它们,但是因为暴露了太多的变量或函数,它们可能被有意或者无意的篡改,以非预期的方式使用,这就导致我们的程序会出现各种各样的问题...块作用 ES5 及以前 JavaScript 中具有块作用的只有 with try...catch 语句,在 ES6 及以后的版本添加了具有块作用的变量标识符 let const 。...总结 函数是 JavaScript 中最常见的作用单元。块作用指的是变量函数不仅可以属于所处的函数作用,也可以属于某个代码块。

10410

JS基础——作用作用

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

3.5K10

JS作用

JavaScript的作用全局作用局部作用 先通过一下代码来体验下作用 var x = 1; function f1(){ var y = 2; x = 10; console.log...undefined 就是报如下的错误,也就是y是个未定义的变量 VM42:7 Uncaught ReferenceError: y is not defined at :7:13 上述代码中变量x就是全局作用...,方法f1的作用也是全局,f1方法中的变量y是局部的,y的作用范围仅限f1方法体内,离开了f1的方法体的作用范围,就无法获取到y的值,所以上述的例子中最后打印y的时候是undefined 我们再来看下面的例子...​ 3-3)给局部变量a赋值为3 4)输出全局变量a,a的值为1 这就是上面这段代码的预解析过程,只要把这段代码的预解析搞明白了,就能猜到他的结果输出了 接下来用一道面试题来举个例子 var a =...不管怎样我们来对上述代码进行一下预解析, 1)定义全局变量a 2)定义全局函数f1 3)给全局变量a赋值为10 4)运行f1 4-1)定义局部变量b,当前b的值为undefined 4-2)定义局部变量

9210

了解 JS 作用作用

JS中使用的是词法作用(lexical scope) 不在任何函数内声明的变量(函数内省略var的也算全局)称作全局变量(global scope) 在函数内声明的变量具有函数作用(function...JS中的声明提前 js中的函数作用是指在函数内声明的所有变量在函数体内始终是可见的。...引入一大段话来解释: 每一段js代码(全局代码或函数)都有一个与之关联的作用链(scope chain)。 这个作用链是一个对象列表或者链表,这组对象定义了这段代码中“作用域中”的变量。...作用链举例: 在js最顶层代码中(也就是不包括任何函数定义内的代码),作用链由一个全局对象组成。...在不包含嵌套的函数体内,作用链上有两个对象,第一个是定义函数参数和局部变量的对象,第二个是全局对象。 在一个嵌套的函数体内,作用上至少有三个对象。 3.

2K10

JavaScript作用深度剖析:从局部全局一网打尽

JavaScript作用深度剖析:从局部全局一网打尽 1.1 编译原理 • JavaScript 事实上是一门编译语言。 • 在传统编译语言中,一段源代码执行前会经历三个步骤: 1....• 当一个块或函数嵌套在另一个块或函数中时,就会发生作用的嵌套。因此在当前作用域中无法找到某个变量时,引擎就会在外层作用域中继续查找,直到找到该变量,或抵达最外层的作用(也就是全局作用)为止。...当抵达最外层的全局作用时,无论找到还是没找到,查找的过程都会停止。 • 例子: • 整个建筑代表程序中的嵌套作用链,第一层楼代表当前的执行作用,也就是你所处的位置。...建筑的顶层代表全局作用。 • 引擎查找的方式:LHS RHS 引用会先在当前楼层中进行查找,如果没找到,就会坐电梯前往上一层楼楼,如果还是没找到就会继续上下,以此类推。...进行 LHS 查询时,如果在顶层(全局作用)中也没找到该变量,就会在全局作用域中隐式地创建一个该名称的变量,并将其返回给引擎。 3. ...... • 严格模式下: 1.

6810

js函数、作用闭包

正确的写法是(function (a,b){return a+b ;})(), ()内部的东西是一个值,加上()代表立刻执行,整个语句相当于一个函数类型的值需要立刻执行 7、命名冲突 当在同一个作用内定义了名字相同的变量方法的话...2、分类: 在 ES5 的规范中,Javascript 只有两种作用: 一种是全局作用,变量在整个程序中一直存在,所有地方都可以读取; 另一种是函数作用,变量只在函数内部存在。...3、全局变量和局部变量 函数外部声明的变量就是全局变量(global variable),它可以在函数内部读取。...在函数内部定义的变量,外部无法读取,称为“局部变量”(local variable) javaScript 语言特有"链式作用"结构(chain scope),子对象会一级一级地向上寻找所有父对象的变量...4、作用规则 {}不产生一个作用,定义函数才会产生一个函数作用 函数在执行的过程中,先从自己内部找变量 如果找不到,再从创建当前函数所在的作用去找, 以此往上 var a = 1 function

1.4K20

js作用详解

atest其实是一个window对象下的方法对象 var 局部变量作用 var 声明一个对象,只作用当前作用以下。...在顶级作用下,var 声明变量,等于全局变量,被window对象接管: var aaaa='666'; ?...定义全局作用变量 直接定义不借助var,将定义全局变量,成为window对象的属性:     var  a1='666';     a2='777';     function test...2:js作用是往下通用的,下层作用可访问上层作用的变量,并可修改值 3:js下层作用变量上层同名冲突时,下层作用将覆盖上层变量,但上层作用的访问不受影响 4:不适用var方法定义的变量,...都属于全局变量,也就是window对象的属性 5:可通过window.方法定义全局变量 6:在顶层作用声明的函数,其实就是window对象的方法 7:闭包在首次声明时,需要加括号自动调用,否则不能调用

2.5K10

【JavaScript】作用 ② ( JavaScript 块级作用 | ES6 之前 等同于 全局局部作用 | ES6 使用 let const 声明变量 常量 有 块级作用 )

; 在 ES6 之前 JavaScript 只有 全局作用 局部作用 概念 , 没有 块级作用 概念 , 此时 块级作用 相当于 全局作用局部作用 , 具体 取决于 {} 是在哪个作用域中...; 全局作用 是 在 全局范围内可见的 , 也就是在 标签内部 js 脚本中 ; 局部作用 是指在一个 函数内部声明的变量 只在这个函数内部可见 ; 使用了 var...关键字 声明的 变量 实际上具有 函数作用全局作用 ; 如果 if 语句在 函数内部 , 则 在 if 代码块中 使用 var 声明变量 , 具有 函数作用 ; 如果 if 语句在 全局作用域中..., 则 在 if 代码块中 使用 var 声明变量 , 具有 全局作用 ; 2、块级作用 - ES6 使用 let / const 声明变量 / 常量 ES6 引入了 let const 关键字...= 全局作用 在下面的代码中 , 在 {} 代码块中 , 使用 var 关键字声明的变量 , 不具有块级作用 , 而是具有 函数作用全局作用 ; num 是在 if 语句内部声明的 ,

12310

原生JS | 作用

一个变量在其作用内是可以被访问的,在作用域外不能被访问。 全局作用局部作用 变量的执行环境有两种:一种是全局,另一种是局部(如:放在函数里面)。...全局变量 在window环境下声明的变量,或者可以理解为非函数内声明的变量,称为全局变量。全局变量存在于整个JavaScript当中,在任何地方都能被访问修改。...局部变量 常见的局部变量有以下两种: ● 在函数内声明的变量(使用var); ● 函数参数(形参)。 局部变量存在于函数体内,它们的值只能在函数体内访问修改。...不同作用的访问关系 在函数内部声明的变量(局部变量),在函数外部并不能访问。在函数外部声明的变量,在函数内部可以访问。 一句话概括:“局部可以访问全局,但全局不能访问局部”。...如果window下也不存在该空间,会在全局作用之下进行空间的创建。 作用链 由于在全局作用当中会包含局部作用局部作用当中还可以再包含局部作用

4.7K50

【说站】python局部作用是什么

python局部作用是什么 说明 1、在函数内赋值的变量变元都,处于局部作用,属于局部变量。在函数外赋值的变量,处于全局作用,属于全局变量。...一个变量肯定是其中一种,不可能既是属于全局作用又是属于局部作用。 注意 2、局部作用可以访问全局变量。 3、局部作用不能使用其他局部作用内的变量。...局部变量eggs被赋值为 99。然后 bacon()函数被调用,创建了第二个局部作用。多个局部作用能同时存在。在这个新的局部作用域中,局部变量 ham 被赋值为 101。...局部变量 eggs(与 spam()的局部作用域中的那个变量不同)也被创建,并赋值为 0。 当 bacon()返回时,这次调用的局部作用被销毁。...以上就是python局部作用的介绍,希望对大家有所帮助。

23920
领券