02_作用域与执行上下文区别

<body>
<!--
1. 区别1
  * 全局作用域之外,每个函数都会创建自己的作用域,作用域在函数定义时就已经确定了。而不是在函数调用时
  * 全局执行上下文环境是在全局作用域确定之后, js代码马上执行之前创建
  * 函数执行上下文是在调用函数时, 函数体代码执行之前创建
2. 区别2
  * 作用域是静态的, 只要函数定义好了就一直存在, 且不会再变化
  * 执行上下文是动态的, 调用函数时创建, 函数调用结束时就会自动释放
3. 联系
  * 执行上下文(对象)是从属于所在的作用域
  * 全局上下文环境==>全局作用域
  * 函数上下文环境==>对应的函数使用域
-->
<script type="text/javascript">
  var a = 10,
    b = 20
  function fn(x) {
    var a = 100,
      c = 300;
    console.log(‘fn()‘, a, b, c, x)
    function bar(x) {
      var a = 1000,
        d = 400
      console.log(‘bar()‘, a, b, c, d, x)
    }

    bar(100)
    bar(200)
  }
  fn(10)
</script>
</body>

原文地址:https://www.cnblogs.com/lucy-xyy/p/11820303.html

时间: 2024-11-05 14:39:01

02_作用域与执行上下文区别的相关文章

JS 作用域 作用域链 执行上下文 执行上下文栈

当我想要整理作用域这块的时候,看各种博客,发现看的我都有点迷糊了,尴尬啊.. 下面说的都以下面这个例子解释 全局对象: 变量a1,函数fun1 一:作用域 在函数fun1声明时,会在scope中存放能访问到的所有资源,他能访问到的也就是全局对象. 二:作用域链 在函数执行时,会生成执行环境excution context,执行环境中存放活动对象.作用域链scope chain.this,作用域链中存放 活动对象.变量对象.全局对象 二:执行上下文 执行上下文也叫做执行环境,执行环境定义了变量或函

js笔记---作用域(执行上下文[execution context],活动对象) 闭包

(一)作用域: 首先,在javascript中的每个函数都是对象,是Funtion对象的一个实例,而Funtion中有一系列仅供javascript引擎存取的内部属性,其中一个便是[[scope]],它包含了一个函数被创建的作用域中对象的集合,这个集合就是函数的作用域链.当一个函数创建后,它的作用域链会被创建此函数的作用域中可访问的数据对象填充.例如定义下面这样一个函数: function add(num1,num2){var sum = num1+num2; return sum; } 在函数

javascript作用域、执行上下文、原型和原型链

一.作用域js中作用域是指可访问变量,对象,函数的集合,也就是调用它们能生效的代码区块.在js中没有块级作用域,只有全局作用域和函数作用域 1.全局,函数作用域 var a = 10 function f1(){ var b = c = 20; console.log(a); ? ? //10 console.log(c); ? ? //20 function f2() { console.log(b); //20 }f2(); } f1(); console.log(a); ? ? //10

函数作用域与执行上下文

1.代码分类:全局代码和函数(局部代码) 代码分为编译(由JS编译器执行)阶段和执行(JS引擎执行)阶段.当代码被编译时,会创建相应的作用域,当代码被执行时,会创建相应的执行 上下文. 2.作用域:是在编译阶段就产生的,一整套函数标识符的访问规则,由函数声明时所在的位置决定. 作用:主要用于隔离变量,不同的作用域中变量名字可以相同 作用域链:多个上下级关系作用域形成的链,由下向上或由内向外.定义了变量的查找规则 3.执行上下文: 1)全局执行上下文:执行全局代码前将window确定为全局执行上下

JS高阶---作用域与执行上下文

一句话介绍 . 原文地址:https://www.cnblogs.com/jianxian/p/11971073.html

执行上下文对象的原理及使用

执行上下文对象: 在浏览器执行javascript代码之前,浏览器会做一些准备工作(从准备工作这一操作开始,直到对应的这一作用域的所有代码被执行完,这样的一个过程就叫做执行上下文;执行上下文可以被看成一个对象,这个对象 就是用来管理其对应作用域中的各个数据,这些数据就是对象中的属性). 一. 全局作用域中的一些准备工作     1. 找到标记的全局变量,并为其赋值为undefined;     2. 给this赋值为window对象     3. 函数声明,并给函数赋值为整个函数块 二. 函数作

原型模式故事链(4)--JS执行上下文、变量提升、函数声明

上一章:JS的数据类型 传送门:https://segmentfault.com/a/11... 好!话不多少,我们就开始吧.对变量提升和函数声明的理解,能让你更清楚容易的理解,为什么你的程序报错了~哈哈哈 我们前端的代码一般就三个部分组成html + css +js,一般呢我们的JS又会放在最后执行. 执行上下文:所谓的执行上下文,就是JS代码执行的环境. Javascript中代码的运行环境分为以下三种: 全局上下文 - 这个是默认的代码运行环境,一旦代码被载入,引擎最先进入的就是这个环境.

谈谈自己对js闭包,执行上下文,作用域链,活动对象AO,变量对象VO的理解

引子:关于闭包什么是闭包呢?  从定义上来看,所有的函数都可以是闭包.当一个函数在调用时,引用了不是自己作用域内定义的变量(通常称其为自由变量),则形成了闭包:闭包是代码块和创建该代码块的上下文中数据的结合. 例子:   function mytest( ){                                var test=10;          return function( ){                  test++;               alert(t

Js 作用域与作用域链与执行上下文不得不说的故事 ?(? ???ω??? ?)?

最近在研究Js,发现自己对作用域,作用域链,活动对象这几个概念,理解得不是很清楚,所以拜读了@田小计划大神的博客与其他文章,受益匪浅,写这篇随笔算是自己的读书笔记吧~. 作用域 首先明确一个概念,js只有函数作用域(function-based),没有块级作用域,也就是只有函数会有自己的作用域,其他都没有. 接着,作用域分为全局作用域与局部作用域. 全局作用域中的对象可以在代码的任何地方访问,一般来说,下面情况的对象会在全局作用域中: 最外层函数和在最外层函数外面定义的变量 没有通过关键字"va