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

理解JavaScript作用作用

​一、JavaScript中的作用 作用是当前的执行上下文,值表达式在其中“可见”或可被访问。如果一个变量或表达式不在当前的作用域中,那么它是不可用的。...function foo() { var x = 'sfa' } console.log(x) // x is not defined 全局作用函数作用 全局作用:在JavaScript...中 {} 外面的作用就是全局作用,里面的变量函数等其他资源可以在任意地方被访问到。...在这个作用内声明的变量,就只能在它这个作用其子作用域中才能使用。...块级作用 ES6新增的块级作用:用letconst声明的变量才存在块级作用,在该代码块外部访问不到该变量。在{ }中用letconst声明的变量就是一个块级作用

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

理解javascript作用作用

作用 作用就是变量函数的可访问范围,控制着变量函数的可见性与生命周期,在JavaScript中变量的作用有全局作用和局部作用。    ...全局和局部作用下面用一张图来解释: ? 单纯的JavaScript作用还是很好理解的。...作用链 全局执行环境是最外层的一个执行环境,在web浏览器中全局执行环境是window对象,因此所有全局变量函数都是作为window对象的属性放大创建的。...当代码在一个环境中执行时,会创建变量对象的一个作用链(scope chain)来保证对执行环境有权访问的变量函数的有序访问。     用一张图来解释作用链的运行:由里向外执行。 ?    ...新的作用链如下图所示: ?    在函数执行过程中,没遇到一个变量,都会经历一次标识符解析过程以决定从哪里获取存储数据。

2.1K10

JavaScript中的作用作用

作用(Scope) 1. 作用 作用是在运行时代码中的某些特定部分中变量,函数对象的可访问性。换句话说,作用决定了代码区块中变量其他资源的可见性。...ES6 之前 JavaScript 没有块级作用,只有全局作用函数作用。ES6 的到来,为我们提供了‘块级作用’,可通过新增命令 let const 来体现。 2....3.函数作用 函数作用,是指声明在函数内部的变量,全局作用相反,局部作用一般只在固定的代码片段内可访问到,最常见的例如函数内部。...值得注意的是:块语句(大括号“{}”中间的语句),如 if switch 条件语句或 for while 循环语句,不像函数,它们不会创建一个新的作用。...正因为如此, ES6 引入了块级作用,让变量的生命周期更加可控。 4. 块级作用 块级作用可通过新增命令 let const 声明,所声明的变量在指定块的作用域外无法被访问。

2.2K10

JavaScript作用 ③ ( JavaScript 作用链 | 作用链变量查找机制 )

一、JavaScript 作用链 1、作用JavaScript 中 , 任何代码都有 作用 , 全局作用 : 在 标签中 或者 js 脚本中 定义的变量 属于 全局作用...之前使用 var 关键字在 {} 代码块 中定义的变量 , 取决于 代码块位置 , 代码块在全局作用 则 该变量属于全局作用 , 代码块在 局部作用 则该变量属于 局部作用 ; 2、作用链 如果在...JavaScript 的重要的概念 , 用于 查找 变量名 对应的 不同作用的 变量 ; 当 JavaScript 代码 执行时 , 会创建变量对象的 作用链 , 其用途是保证对执行环境有权访问的所有变量函数的有序访问...; 3、作用链变量查找机制 在 JavaScript 代码中 的 嵌套作用 中 , 查找 变量 或 函数 的 机制就是 作用链 的 链式查找机制 ; 内部函数 在 访问 指定名称的 变量时 ,...的 局部作用 有该变量 , 则采用该变量 ; 如果 外部函数 的 局部作用 没有该变量 , 则向上一层 全局作用 查找 ; 如果 全局作用 有该变量 , 则采用该变量 ; 如果 全局作用

7810

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

一、JavaScript 作用 1、作用概念 在 JavaScript 代码中 , 使用的 变量 / 函数 等 名称 在 声明后 , 并不是 在所有的位置 都有效的 , 限定 上述 变量 / 函数...可维护性 , 避免 命名冲突 , 在不同的作用域中 , 可以使用相同的名称 ; 2、全局作用 局部作用 JavaScript作用 分为 全局作用 局部作用 两种类型 : 全局作用... // JavaScript 作用 // 1....局部作用 function add() { // 该 num 变量 num2 变量 都是局部变量 // 这两个变量只能在 函数的内部可以访问...中 , 相同名称 的变量 本作用的 变量 优先级较高 ; 二、JavaScript 变量 1、全局变量 局部变量 JavaScript 变量 根据 其 被声明的 作用类型 , 分为 全局变量

10610

JavaScript作用作用

静态作用 作用 作用规定了如何查找变量,也就是确定当前执行代码对变量的访问权限。 JavaScript 采用词法作用(lexical scoping),也就是静态作用。...因为 JavaScript 采用的是词法作用,函数的作用在函数定义的时候就决定了。 而与词法作用相对的是动态作用,函数的作用是在函数调用的时候才决定的。...总之一句话: 函数的作用在函数定义的时候就决定了 函数会沿着作用链去查找变量。 那么为什么 JavaScript 是静态作用呢?JavaScript 引擎是怎么处理函数的呢?...作用链是如何产生?我们应该先了解 JavaScript 引擎 在创建 执行上下文 的具体处理过程。...这样由多个执行上下文的变量对象构成的链表就叫做作用链。 由上可知,作用链是由 变量对象/活动对象 构成的。 活动变量 变量对象是与执行上下文相关的数据作用,存储了在上下文中定义的变量函数声明。

1.5K40

JavaScript作用

JavaScript作用 通常来说,一段程序代码中所用到的名字并不总是有效可用的,而限定这个名字的可用性的代码范围就是这个名字的作用。...作用的使用提高了程序逻辑的局部性,增强了程序的可靠性,减少了名字冲突。 一、作用(es6之前) 1.全局作用 在整个script标签或者一个.js文件中。...2.局部作用(函数作用) 在函数内部,只在函数内部起效果作用。...二、变量的作用 1.全局变量 在全局作用下的变量。 ※ 在函数内部没有声明而直接赋值的变量也属于全局变量。 2.局部变量 在局部作用下的变量。...三、作用链 如果在函数中还有函数,那么在这个作用域中就又诞生了一个作用。 根据在内部函数可以访问外部函数变量的这种机制,用链式查找决定哪些数据能被内部函数访问,就称作”作用链“。

24810

javascript作用

javascript作用一直以来是前端开发中比较难理解的知识点,对于javascript作用主要记住几句话....一丶"javascript中无块级作用" 在java或C#中存在块级作用,既:大括号也是一个作用. public static void main () { if(1==1){.../ 输出: seven 补充;标题值所以添加双引号是应为javascript6中新引入了let关键字,用于指定变量属于块级作用·  二丶javascript采用函数作用javascript中每个函数作为一个作用...); //报错;Uncaught ReferenceError: innerValue is not defined 三丶javascript作用链 由于javascript中的每一个函数作为一个作用...四丶javascript作用链 执行前已经创建 javascript作用在被执行之前已经创建,日前再去执行时只需要按照作用链去寻找即可· 实列一: xo = "wyc"; function

41320

JavaScript作用

JavaScript中的作用是指变量、函数对象在代码中可访问的范围。作用规定了在何处以及如何查找变量函数。理解作用对于编写高质量的JavaScript代码至关重要。...作用的概念作用是指定义变量函数的可访问范围。在JavaScript中,作用可以分为全局作用和局部作用。全局作用:全局作用是在整个代码中都可访问的范围。...作用的类型除了全局作用和局部作用JavaScript还有其他类型的作用,包括函数作用、块级作用词法作用。函数作用:在函数内部定义的变量具有函数作用,只能在函数内部访问。...在ES6之前,JavaScript没有块级作用,只有函数作用全局作用。从ES6开始,引入了letconst关键字,可以在块级作用域中定义变量。...JavaScript使用词法作用来解析变量函数的作用

24510

JavaScript——作用

作用 通常来说,一段程序代码中所用到的名字并不是总有效可用的,而限定这个名字的可用性的代码范围就是这个名字的作用作用的使用提高了程序逻辑的局部性,增强了程序的可靠性,减少了名字冲突。...简单理解:就是代码名字(变量)在某个范围内起作用效果。 JS的作用(es6)之前:全局作用和局部作用。 全局作用:整个script标签或者是一个单独的js文件。...局部作用:在函数内部就是局部作用(函数作用),这个代码的名字只在函数内部起效果作用。 变量的作用 根据作用的不同,我们变量分为全局变量和局部变量。 全局变量:在全局作用下声明的变量。...JavaScript解析器在运行JavaScript代码的时候分为两步:预解析代码执行。 预解析:js引擎会把js里面的所有var还要function提升到当前作用的最前面。...预解析分为变量预解析(变量提升)函数预解析(函数提升) 变量提升:就是把所有的变量声明提升到当前的作用前面,不提升赋值操作。

36820

JavaScript作用块级作用概念理解

说到这里我们需要理解两个概念:块级作用与函数作用。 函数作用 这个应该好理解,函数作用就是说定义在函数中的参数变量在函数外部是不可见的。 大多数类C语言都拥有块级作用,JS却没有。...块级作用 ---- 任何一对花括号中的语句集都属于一个块,在这之中定义的所有变量在代码块外都是不可见的,我们称之为块级作用。...正如我们举的C语言的例子,大多数类C语言都是有块级作用的,那么在JavaScript又有什么不同呢?...也就是说,JS并不支持块级作用,它只支持函数作用,而且在一个函数中的任何位置定义的变量在该函数中的任何地方都是可见的。 那么我们该如何使JS拥有块级作用呢?...在JS中,为了防止命名冲突,我们应该尽量避免使用全局变量全局函数。那么,该如何避免呢?

62820

JavaScript——作用闭包

本文着重于对 JavaScript 中的作用闭包机制进行剖析说明,闭包本质上也是作用的一种类型,因为在 JavaScript 里非常重要,所以我们把它在标题里单独列出来。...,大部分语言采用的都是静态作用模式,JavaScript 采用的也是静态作用模式,因此这里我们只针对静态作用来进行展开。...JavaScript 支持闭包作用。 全局作用JavaScript 中,全局作用是最外围的一个执行上下文,可以在代码的任何地方访问到。在浏览器中,我们的全局作用就是 window。...局部作用 局部作用全局作用正好相反,局部作用一般只在某个特定的代码片段内可访问到,JavaScript 中的局部作用分为函数作用代码块作用两类,其中代码块作用在 ECMAScript6...执行上下文的作用链 (这里以函数的执行为例进行说明,与函数的执行相比,全局代码执行时的作用链更为简单,没有函数作用闭包作用。)

68510

JavaScript作用块级作用概念理解

作用 作用永远都是任何一门编程语言中的重中之重,因为它控制着变量与参数的可见性与生命周期。说到这里我们需要理解两个概念:块级作用与函数作用。...函数作用 这个应该好理解,函数作用就是说定义在函数中的参数变量在函数外部是不可见的。 大多数类C语言都拥有块级作用,JS却没有。...正如我们举的C语言的例子,大多数类C语言都是有块级作用的,那么在JavaScript又有什么不同呢?...也就是说,JS并不支持块级作用,它只支持函数作用,而且在一个函数中的任何位置定义的变量在该函数中的任何地方都是可见的。 那么我们该如何使JS拥有块级作用呢?...在JS中,为了防止命名冲突,我们应该尽量避免使用全局变量全局函数。那么,该如何避免呢?

85650

java作用-什么是JavaScript作用作用链?

今天我们将通过最简单实际的代码来展示函数作用全局作用,在下篇文章中,我们将介绍块级作用暂时性死区。   ...作用基本知识   简单来说,作用就是用来规定变量的作用范围的,在任何语言当中都会有作用的概念,在ES6以前,只有函数作用全局作用,ES6之后又增加块级作用。   ...函数作用全局作用   函数作用非常简单,比如,执行下面的foo函数,变量a在函数foo的作用内,所以在函数内可以正常的访问该变量,输出bar    function foo()...} function foo() { console.log(b) } foo()   上面代码,foobar两个函数拥有彼此独立的函数作用,所以在...变量作用就是这样一层一层相套的关系,逐层寻找,这也就是被称之作用链的原因。   在下篇文章中,我们将介绍块级作用暂时性死区的相关内容。 本文共 678 个字数,平均阅读时长 ≈ 2分钟

1.9K20

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

我们在 JavaScript 词法作用不完全指北 中介绍了词法作用,词法作用是由你写代码时将变量作用写在哪里来决定的,词法分析器处理代码时会保持作用不变。...那么究竟什么时候才会生成新的作用呢?最常见的答案是 JavaScript 具有基于函数的作用,这意味着每声明一个函数都会为其自身创建一个作用。...} } foo(); 所以,在任意代码片段外部添加包装函数, 可以将内部的变量函数定义“隐藏” 起来, 外部作用无法访问包装函数内部的任何内容。...块作用 尽管函数作用是最常见的作用单元, 当然也是现行大多数 JavaScript 中最普遍的设计方法。虽然这样,但是函数作用实现起来却不是最简洁的,甚至有点啰嗦。...const 关键字也遵循块作用,可以使用它声明块作用常量。有关 let const 关键字的具体内容,将会在下篇文章中介绍。

60010

JavaScript作用深度剖析:动态作用

前言 • 在上篇文章中, 我们说了作用一共分为两种:词法作用动态作用,而这篇文章我们一起来学习 动态作用。...foo() 中的 a 通过 RHS 引用到了全局作用域中的 a, 因此输出 2; • 在动态作用域中,它并不关心函数作用是如何声明以及在何处声明的,只关心他们从何处调用的。...• 事实上 JavaScript 并不具有动态作用,它只有词法作用。但 this 机制的存在在某种程度上很像动态作用。 词法作用与动态作用的区别?...• 动态作用其实是 JavaScript 另一个重要机制 this 的表亲 • 词法作用是在书写代码或定义时确定的 • 动态作用是在运行时确定的。...(this 也是) • 词法作用关注函数在何处声明 • 动态作用关注函数从何处调用 • 其实在 JavaScript 中的作用大多为词法作用

7710
领券