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

JavaScript作用作用

作用(Scope) 1. 作用 作用是在运行时代码某些特定部分变量,函数对象可访问性。换句话说,作用决定了代码区块变量其他资源可见性。...ES6 之前 JavaScript 没有块级作用,只有全局作用函数作用。ES6 到来,为我们提供了‘块级作用’,可通过新增命令 let const 来体现。 2....全局作用 在代码任何地方都能访问到对象拥有全局作用,一般来说以下几种情形拥有全局作用: 最外层函数和在最外层函数外面定义变量拥有全局作用 var outVariable = "我是最外层变量...作用 如果父级也没呢?再一层一层向上寻找,直到找到全局作用还是没找到,就宣布放弃。这种一层一层关系,就是 作用 。...JavaScript 引擎首先在最内层活动对象查询属性 a、b、c d,从中只找到了属性 d,并获得它值(4);然后沿着作用,在上一层活动对象中继续查找属性 a、b c,从中找到了属性

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

理解JavaScript作用作用

​一、JavaScript作用 作用是当前执行上下文,值表达式在其中“可见”或可被访问。如果一个变量或表达式不在当前作用域中,那么它是不可用。...function foo() { var x = 'sfa' } console.log(x) // x is not defined 全局作用函数作用 全局作用:在JavaScript... {} 外面的作用就是全局作用,里面的变量函数等其他资源可以在任意地方被访问到。...{ let a = 1; console.log(a) // 1 } console.log(a) // a is not defined 外部访问不到 二、作用 作用指的是各个作用嵌套关系查找机制...上下文中代码在执行时候会创建变量对象一个作用(scope chain)。 希望本篇文章能够帮助到大家!

38600

理解javascript作用作用

作用 作用就是变量函数可访问范围,控制着变量函数可见性与生命周期,在JavaScript变量作用全局作用和局部作用。    ...全局和局部作用下面用一张图来解释: ? 单纯JavaScript作用还是很好理解。...作用 全局执行环境是最外层一个执行环境,在web浏览器全局执行环境是window对象,因此所有全局变量函数都是作为window对象属性放大创建。...当代码在一个环境执行时,会创建变量对象一个作用(scope chain)来保证对执行环境有权访问变量函数有序访问。     用一张图来解释作用运行:由里向外执行。 ?    ...该过程从作用头部,也就是从活动对象开始搜索,查找同名标识符,如果找到了就使用这个标识符对应变量,如果没找到继续搜索作用下一个对象,如果搜索完所有对象都未找到,则认为该标识符未定义。

2.1K10

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

一、JavaScript 作用 1、作用概念 在 JavaScript 代码 , 使用 变量 / 函数 等 名称 在 声明后 , 并不是 在所有的位置 都有效 , 限定 上述 变量 / 函数...可维护性 , 避免 命名冲突 , 在不同作用域中 , 可以使用相同名称 ; 2、全局作用 局部作用 JavaScript 作用 分为 全局作用 局部作用 两种类型 : 全局作用...: 在代码 任何地方都能访问到变量就处于全局作用域中 , 具体指就是 标签 , 或者 单独 js 文件 ; 局部作用 : 在 代码块 内 定义 变量具有局部作用..., 全局变量 num 变量 与 局部变量 num 变量 出现了 命名冲突 , 这不会影响到 局部变量 使用 ; 在 局部作用 , 相同名称 变量 本作用 变量 优先级较高 ; 二、JavaScript...变量 1、全局变量 局部变量 JavaScript 变量 根据 其 被声明 作用类型 , 分为 全局变量 : 在 全局作用 声明变量 , 就是全局变量 , 全局作用就是

10310

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

一、JavaScript 作用 1、作用JavaScript , 任何代码都有 作用 , 全局作用 : 在 标签 或者 js 脚本 定义变量 属于 全局作用...确定取哪个值 , 这种作用结构 称为 " 作用 " ; 内部函数 , 外部函数 , 全局变量 , 定义变量名称 可能是相同 , 给定一个变量名 , 需要从作用具体查找 作用 是...JavaScript 重要概念 , 用于 查找 变量名 对应 不同作用 变量 ; 当 JavaScript 代码 执行时 , 会创建变量对象 作用 , 其用途是保证对执行环境有权访问所有变量函数有序访问...; 3、作用变量查找机制 在 JavaScript 代码 嵌套作用 , 查找 变量 或 函数 机制就是 作用 链式查找机制 ; 内部函数 在 访问 指定名称 变量时 ,...没有该变量 , 则报 " 变量未定义 " 错误 ; 二、代码示例 - 作用 在下面的代码 : 首先 , 在 全局作用 定义 num 变量 , 该变量 作用 属于 全局作用 ; 然后 ,

7410

JavaScript作用作用

总之一句话: 函数作用在函数定义时候就决定了 函数会沿着作用去查找变量。 那么为什么 JavaScript 是静态作用呢?JavaScript 引擎是怎么处理函数呢?...对于每个执行上下文,都有三个重要属性: 变量对象(Variable object,VO) 作用(Scope chain) this JavaScript 引擎会沿着作用去查找变量。...,会先从当前上下文变量对象查找,如果没有找到,就会从父级(词法层面上父级)执行上下文变量对象查找,一直找到全局上下文变量对象,也就是全局对象。...这样由多个执行上下文变量对象构成链表就叫做作用。 由上可知,作用是由 变量对象/活动对象 构成。 活动变量 变量对象是与执行上下文相关数据作用,存储了在上下文中定义变量函数声明。...活动对象变量对象其实是一个东西,只是变量对象是规范上或者说是引擎实现上,不可在 JavaScript 环境访问,只有到当进入一个执行上下文中,这个执行上下文变量对象才会被激活,所以才叫 activation

1.5K40

JavaScript——执行环境、变量对象作用

前言 这几天在看《javascript高级程序设计》,看到执行环境作用时候,就有些模糊了。书中还是讲不够具体。通过上网查资料,特来总结,以备回顾修正。...作用 在执行上下文作用域中查找变量过程被称为标识符解析(indentifier resolution),这个过程实现依赖于函数内部另一个同执行上下文相关联对象——作用。...作用是一个有序链表,其包含着用以告诉JavaScript解析器一个标识符到底关联着那一个变量对象。而每一个执行上下文都有其自己作用Scope。...一句话:作用Scope其实就是对执行上下文EC变量对象VO|AO有序访问链表。能按顺序访问到VO|AO,就能访问到其中存放变量函数定义。...总结 EC分为俩个阶段,进入执行上下文执行代码。 ECStack管理EC压栈出栈。 每个EC对应一个作用,VO|AO(AO,VO只能有一个),this。

73910

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

作用作用也是面试中出镜率很高问题之一java作用java作用,同时也是中最重要基础概念之一。   ...今天我们将通过最简单实际代码来展示函数作用全局作用,在下篇文章,我们将介绍块级作用暂时性死区。   ...作用基本知识   简单来说,作用就是用来规定变量作用范围,在任何语言当中都会有作用概念,在ES6以前,只有函数作用全局作用,ES6之后又增加块级作用。   ...foo函数也无法访问bar函数定义变量b,其作用(直到最上层全局作用域中)也并不存在变量b,所以代码会报错 : b is not   简单来说就是,在执行某个函数时,如果需要取某个变量值...变量作用就是这样一层一层相套关系,逐层寻找,这也就是被称之作用原因。   在下篇文章,我们将介绍块级作用暂时性死区相关内容。 本文共 678 个字数,平均阅读时长 ≈ 2分钟

1.9K20

java作用-javaScript预编译、作用作用详解

ES5只分为全局作用函数作用java作用,也就是说for,if,while等语句是不会创建作用。ES6(let,const)除外。   ...它定义了变量或函数有权访问其他数据,决定了它们各自行为。   执行环境分为全局执行环境函数执行环境(这个名字我自己取),其中在浏览器全局执行环境是一个对象。   ...寻找变量过程就是从变量作用开始查找,如果在当前变量作用没找到,那么就去上一个变量作用里面去早   作用创建过程:   预编译   先来理解一下预编译,看例子:   ...的话,预编译阶段是不会被添加进去   作用   看例子:   第一步:a函数被定义,创建[[scope]]   上面函数被定义时候,[[scope]]会把当前函数所在上下文放入这个对象。...第四步,执行b函数   a函数执行一样,依然创建一个AO对象放入   作用就是这样形成,每个函数都有一个[[scope]]里面储存了运行期上下文集合。

1.4K40

作用原型区别_原型作用

作用 在红宝书中对作用描述有这么一段话:当代码在一个环境执行时,会创建变量对象一个作用作用用途是保证对执行环境有权访问所有变量函数有序访问。...作用下一个变量对象来自包含环境,而在下一个变量对象则来自下一个包含环境。这样一直延续到全局执行环境;全局执行环境变量对象始终都是作用最后一个对象。...全局执行环境变量对象(包含resultcompare)在compare()执行环境作用则处于第二位。...对于这个例子,compare()函数执行函数而言,其作用包含两个变量对象:本地活动对象全局便朗对象作用本质上是一个指向变量对象指针列表,它只引用但不实际包含变量对象。...闭包与作用 无论什么时候在函数访问一个变量时,就会从作用搜索具有相应名字变量。一般来讲,当函数执行完毕后,局部活动对象就会被销毁,内存仅保存全局作用全局执行环境变量对象)。

43340

JavaScript作用对象

JavaScript(es6前)作用有两种: 全局作用 局部作用(函数作用) 1.2 全局作用 作用于所有代码执行环境(整个 script 标签内部)或者一个独立 js 文件。.../ 报错 以上java代码会报错,是因为代码{}即一块作用,其中声明变量num,在{}之外不能使用;而与之类似的JavaScript代码,则不会报错,JS没有块级作用(在ES6之前): if(...true){ var num = 123; console.log(123); //123 } console.log(123); //123 2 - 变量作用JavaScript,根据作用不同...3 - 作用 只要是代码都一个作用域中,写在函数内部局部作用,未写在任何函数内部即在全局作用域中;如果函数还有函数,那么在这个作用域中就又可以诞生一个作用;根据在[内部函数可以访问外部函数变量...5 - 对象 5.1 对象相关概念 什么是对象?在 JavaScript 对象是一组无序相关属性方法集合,所有的事物都是对象,例如字符串、数值、数组、函数等。

29720

JS作用作用

全局变量作用全局,即在JavaScript代码,该全局变量处处都有定义。...从根本上来说,作用是基于函数,而执行环境是基于对象(例如:全局执行环境即window对象)。 换句话说,作用涉及到所被调用函数变量访问,并且不同调用场景是不一样。...当代码在一个环境执行时,会创建变量对象一个作用(scope chain)。作用用途是保证对执行环境有权访问所有变量函数有序访问。...作用包含了执行环境栈每个执行环境对应变量对象。通过作用,可以决定变量访问标识符解析。 注意:全局执行环境变量对象始终都是作用最后一个对象。...这也就形成了Scope Chain概念。 需要注意是:内部环境可以通过作用访问所有的外部环境,但是外部环境不能访问内部环境任何变量函数。

4.1K30

作用作用简单理解

作用作用 作用 javascript采用静态作用,也可以称为词法作用,意思是说作用是在定义时候就创建了, 而不是运行时候。...作用又分为全局作用函数作用,块级作用全局作用任何地方都可以访问到,如window,Math等全局对象。 函数作用就是函数内部变量方法,函数外部是无法访问到。...块级作用指变量声明代码段外是不可访问,如let,const. 作用 知道作用后,我们来说说什么是作用? 表示一个作用可以访问到变量一个集合。...我们可以从上图中看到,a 函数在被定义时,a函数对象属性[[scope]]作用指向他作用scope chain,此时它作用第一项指向了GO(Global Object)全局对象,我们看到全局对象上此时有...当a函数被执行时,此时a函数对象作用[[scope]]作用scope chain第一项指向了AO(Activation Object)活动对象,AO对象里有4个属性,分别是this、arguments

78531

java作用-翻译:⚡⛓️可视化 JavaScript作用

对于 函数而言,作用(Scope Chain)看起来像这样(别担心看不懂,现在还不需要完全理解):   作用(Scope Chain)基本上就是对象之间“引用”,包括了该执行上下文( )可引用对其他作用引用...当执行上下文被创建时,作用就被创建了,这意味着它是在运行时()被创建。   然而,在这篇文章我不会讨论 Object 执行上下文( ),让我们只关注作用(Scope)。   ...全局执行上下文(global )作用域中引用了 3 个变量:   在本地执行上下文(local ),我们引用了两个变量:   当我们尝试在函数 访问变量时, 引擎首先在本地作用(local...在我们示例,这个外部作用就是全局作用。   在全局上下文(global ),我们声明了变量 city,它值为 San ,因此有了对变量 city 引用。...我们可以沿着作用往下走java作用,但是不能沿着作用往上走。(好吧,这可能会引起混乱,有些人会反过来理解“上”“下”意思。

44420

JS进阶:作用作用

作用(Scope) 1.什么是作用 作用是在运行时代码某些特定部分变量,函数对象可访问性。换句话说,作用决定了代码区块变量其他资源可见性。...ES6 之前 JavaScript 没有块级作用,只有全局作用函数作用。ES6到来,为我们提供了‘块级作用’,可通过新增命令letconst来体现。...2.全局作用函数作用 在代码任何地方都能访问到对象拥有全局作用,一般来说以下几种情形拥有全局作用: 最外层函数 和在最外层函数外面定义变量拥有全局作用 var outVariable...所有window对象属性拥有全局作用 一般情况下,window对象内置属性都拥有全局作用,例如window.name、window.location、window.top等等。...再一层一层向上寻找,直到找到全局作用还是没找到,就宣布放弃。这种一层一层关系,就是 作用

2.5K20

JavaScript】执行上下文与作用作用

整个过程,解析器会创建和管理上下文,包括全局执行上下文函数执行上下文等。执行上下文是一个包含执行时所需信息数据结构,包括变量对象作用、this指针等。...但在浏览器,我们常说得全局上下文就是window对象,因此通过var定义全局变量函数都会成为window对象属性方法。...作用 上下文中代码在执行时候,会创建上下文对象一个作用。这个作用决定了各级上下文中代码在访问变量函数时顺序。...活动对象最初只有一个定义变量:arguments(全局上下文中没有这个变量)。作用下一个变量对象来之包含上下文,再下一个对象来自再下一个包含上下文。...一次内推,直至全局上下文,全局上下文变量对象始终是作用最后一个变量对象。 代码执行时标识符解析式通过作用逐级搜索标识符名称完成

64820

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

1.前言 作用是任何一门编程语言中重中之重,因为它控制着变量与参数可见性与生命周期。很惭愧,我今天才深入理解JS作用..我不配做一个程序员.....开玩笑,什么时候理解都不晚,重要是理解了以后能不能深深地扎在记忆里,不能,那就写下来 2.块级作用 在一个代码块(括在一对花括号一组语句)定义所有变量在代码块外部是不可见。...ES6新增概念,在ES5是没有的,ES5没有? 没有的时候我们代码也写好好,现在新增概念,我不用不行吗? 来,拋一个典型问题出来,你就明白块级作用出现重要性了。...("i =",i); //i = 100 ES6为什么会出现块级作用概念,那还要问letconst两兄弟。...使用letconst以后会发现,他们声明变量作用范围不会超过{}这个圈 for(let i = 0; i < 5; i++){}; console.log("i =",i); //i is

3K10

理解 JavaScript 作用

作用JavaScript 一个重要而又模糊概念。只有正确使用 JavaScript 作用,才能使用优秀设计模式,帮助你规避副作用。...本文中,我们将会详细分析 JavaScript 不同类型作用,以及为了写出更好代码,介绍它们是如何工作作用简单定义是编译器需要变量函数时去查找它们地方。听起来很容易对吗?...如果在全局作用也没有找到,解释器就会抛出Reference Error错误。...ES6,let const 定义便来那个都显式地声明了当前作用为块级作用而不是函数作用。也就是说,这些变量只能在声明它们的当前所属访问,这些块可以由 if,for语句或函数生成。...在下一篇文章,我将会谈到 JavaScript context this, 什么是显式硬性绑定,以及关键词 new代表什么。

91110
领券