词法作用域 vs 动态作用域 链接:https://www.jianshu.com/p/cdebb5965000 scheme是一门采用词法作用域(lexical scoping)的lisp方言,这个设计是从alogol语言里借鉴过来的。现在,词法作用域已经被许多lisp方言所吸收,实践表明,这的确 ...
分类:
其他好文 时间:
2018-12-22 01:37:11
阅读次数:
218
最近看到一个面试题如下: 最后的输出结果是10而不是20,是不是很差异,不是有作用域链吗,不是内部函数有权访问外部函数的变量吗,世界怎么了,之前的理论都崩塌了吗??囧。。。 其实不是的,之前的理论没错,只是自己的理解有问题。函数执行时确实是沿着作用域链查找变量的,问题是什么是作用域链?红宝书上的解释 ...
分类:
其他好文 时间:
2018-12-21 01:08:29
阅读次数:
234
1、定义函数 函数声明定义函数 函数声明提升 函数表达式定义函数 匿名函数(拉姆达函数) 函数作为其他函数的值返回 2、递归 递归函数是在一个函数通过名字调用自身的情况下构成的 原理: 当某个函数被调用时,会创建一个执行环境(execution context)及相应的作用域链,然后,使用 argu ...
分类:
其他好文 时间:
2018-12-11 00:42:39
阅读次数:
230
本文重点是要梳理执行上下文的生命周期中的建立作用域链,在此之前,先回顾下关于作用域的一些知识。 1.什么是作用域(scope)? 在《JavaScritp高级程序设计》中并没有找到确切的关于作用域的定义,只是在“4.2执行环境及作用域”中简单说了下执行环境(execution context)的概念 ...
分类:
Web程序 时间:
2018-12-09 10:36:05
阅读次数:
250
# 之前做得的题 以后再遇到能保证会# 下周二考 :所有的知识# 面试题:认真对待## 三元运算符# 接收结果的变量 = 条件为真的结果 if 条件 else 条件为假的结果# 接收结果的变量 = “真结果” if 条件 else “假结果”## 命名空间 和 作用域# 三种:内置 全局 局部# 作 ...
分类:
其他好文 时间:
2018-12-08 00:56:04
阅读次数:
164
1.什么是作用域链:js中的关键字var和function 都可以提前声明和定义,提前声明和定义的放在我们的内存地址(堆内存)中。然后js从上到下逐行执行,遇到变量就去内存地址查找是否存在这个变量。有就使用,没有就继续向父级作用域查找直到window下结束,这种查找机制叫作用域链。 2.面向对象:我 ...
分类:
其他好文 时间:
2018-12-02 22:35:12
阅读次数:
198
作用域:浏览器给js的一个生存环境(栈内存)。 作用域链:js中的关键字var和function 都可以提前声明和定义,提前声明和定义的放在我们的内存地址(堆内存)中。然后js从上到下逐行执行,遇到变量就去内存地址查找是否存在这个变量。有就使用,没有就继续向父级作用域查找直到window下结束,这种 ...
分类:
Web程序 时间:
2018-12-02 20:07:20
阅读次数:
151
首先,回顾下上篇博文中 "js基础梳理 究竟什么是执行上下文栈(执行栈),执行上下文(可执行代码)?" 的执行上下文的生命周期: 3.执行上下文的生命周期 3.1 创建阶段 生成变量对象(Variable object, VO) 建立作用域链(Scope chain) 确定this指向 3.2 执行 ...
分类:
Web程序 时间:
2018-12-02 13:38:53
阅读次数:
234
《你不知道的JavaScript》系列分享专栏 你不知道的JavaScript”系列就是要让不求甚解的JavaScript开发者迎难而上,深入语言内部,弄清楚JavaScript每一个零部件的用途 《你不知道的JavaScript》已整理成PDF文档,点击可直接下载至本地查阅https://www. ...
分类:
编程语言 时间:
2018-12-01 20:14:41
阅读次数:
190
目录 楔子 命名空间和作用域 函数嵌套及作用域链 函数名的本质 闭包 本章小结 楔子 假如有一个函数,实现返回两个数中的较大值: 之前是不是我告诉你们要把结果return回来你们就照做了?可是你们有没有想过,我们为什么要把结果返回?如果我们不返回m,直接在程序中打印,行不行? 来看结果: 报错了!错 ...
分类:
编程语言 时间:
2018-11-22 00:19:54
阅读次数:
180