什么是“执行上下文”(也叫做“执行上下文环境”)?暂且不下定义,先看一段代码: 第一句报错,a未定义,很正常。第二句、第三句输出都是undefined,说明浏览器在执行console.log(a)时,已经知道了a是undefined,但却不知道a是10(第三句中)。 在一段js代码拿过来 ...
继续上一篇文章 http: www.cnblogs.com wangfupeng p .html 的内容。 上一篇我们讲到在全局环境下的代码段中,执行上下文环境中有如何数据: 变量 函数表达式 变量声明,默认赋值为undefined this 赋值 函数声明 赋值 如果在函数中,除了以上数据之外,还会有其他数据。先看以下代码: 以上代码展示了在函数体的语句执行之前,arguments变量和函数的参 ...
2014-09-23 08:43 25 47364 推荐指数:
什么是“执行上下文”(也叫做“执行上下文环境”)?暂且不下定义,先看一段代码: 第一句报错,a未定义,很正常。第二句、第三句输出都是undefined,说明浏览器在执行console.log(a)时,已经知道了a是undefined,但却不知道a是10(第三句中)。 在一段js代码拿过来 ...
继续上文的内容。 执行全局代码时,会产生一个执行上下文环境,每次调用函数都又会产生执行上下文环境。当函数调用完成时,这个上下文环境以及其中的数据都会被消除,再重新回到全局上下文环境。处于活动状态的执行上下文环境只有一个。 其实这是一个压栈出栈的过程——执行上下文栈。如下图: 可根据 ...
上文简单介绍了作用域,本文把作用域和上下文环境结合起来说一下,会理解的更深一些。 如上图,我们在上文中已经介绍了,除了全局作用域之外,每个函数都会创建自己的作用域,作用域在函数定义时就已经确定了。而不是在函数调用时确定。 下面我们将按照程序执行的顺序,一步一步把各个上下文环境 ...
本系列用了大量的篇幅讲解了上下文环境和作用域,有些人反映这两个是一回儿事。本文就用一个小例子来说明一下,作用域和上下文环境绝对不是一回事儿。 再说明之前,咱们先用简单的语言来概括一下这两个的区别。 00 上下文环境: 可以理解为一个看不见摸不着的对象(有若干个属性),虽然看不见摸不着 ...
前言 如果你是一名 JavaScript 开发者,或者想要成为一名 JavaScript 开发者,那么你必须知道 JavaScript 程序内部的执行机制。执行上下文和执行栈是 JavaScript 中关键概念之一,是 JavaScript 难点之一。 理解执行上下文和执行栈同样有助于理解 ...
接着上一节讲的话,应该轮到“执行上下文栈”了,但是这里不得不插入一节,把this说一下。因为this很重要,js的面试题如果不出几个与this有关的,那出题者都不合格。 其实,this的取值,分四种情况。我们来挨个看一下。 在此再强调一遍一个非常重要的知识点:在函数中this到底取何值 ...
为何用“继承”为标题,而不用“原型链”? 原型链如果解释清楚了很容易理解,不会与常用的java/C#产生混淆。而“继承”确实常用面向对象语言中最基本的概念,但是java中的继承与javascript中的继承又完全是两回事儿。因此,这里把“继承”着重拿出来,就为了体现 ...
从下面目录中可以看到,本系列有16篇文章,外加两篇后补的,一共18篇文章。写了半个月,从9月17号开始写的。每篇文章更新时,读者的反馈还是可以的,虽然不至于上头条,但是也算是中规中矩,有看的人,也有评论的人。特别是在后期讲闭包的时候。 我从来都不做基础入门教程,因为基础入门的教程,要想 ...