【JS/读书随笔】JavaScript编程精解/Eloquent JavaScript:Chapter 2 函数
来源:互联网 发布:三省六部三公九卿 知乎 编辑:程序博客网 时间:2024/05/16 13:42
- 函数定义顺序
计算机在开始执行语句之前,会先查找所有的 function 定义,然后保存相关的 function,我们不必去思考多个函数定义的顺序,使用函数是允许它们之间相互调用,而不用考虑那个函数在第一个位置定义。 - 词法作用域
函数内部的变量集是否可见,取决于函数在程序中的位置,在函数“上面”定义的所有变量都是可见的,也就是存在于函数体内并包含函数定义的以及位于程序顶级的变量。javascript 中无法产生新的局部环境。 - 函数值
javascript 里的所有东西都是值,包括 function 函数。 - 闭包
问题:如果创建局部变量的函数调用不在栈上了,那么局部变量会发生什么变化?下面的代码展示了这种情况:
fucntion createFunction(){
var local = 100;
return function(){return local;}
}
一旦调用了 createFunction 函数,它就会创建一个局部变量,并且返回一个函数(该函数又返回该局部变量)。如何处理这一情况是向上函数变元问题(upwards Funarg problem),很多旧编程语言都禁用了这种形式。幸运的是 javascript 可以解决这个问题,只要这个局部变量是可达的,就会尽力保存局部变量。执行 createFunction()(创建函数并且执行),返回值是 100。
这种特性是闭包,包裹一些局部变量的一个函数叫做闭包。该行为是我们可以创造性地使用函数值。 - 递归
参考 漫谈递归
0 0
- 【JS/读书随笔】JavaScript编程精解/Eloquent JavaScript:Chapter 2 函数
- 【JS/读书随笔】JavaScript编程精解/Eloquent JavaScript:Chapter 5 函数式编程
- 【JS/读书随笔】JavaScript编程精解/Eloquent JavaScript:Chapter 6 面向对象编程
- 【JS/读书随笔】JavaScript编程精解/Eloquent JavaScript:Chapter 4 错误处理
- 【JS/读书随笔】JavaScript编程精解/Eloquent JavaScript:Chapter 11 浏览器事件
- 《Eloquent JavaScript》笔记--函数;
- Eloquent Javascript 读书笔记2
- Eloquent JavaScript 2rd
- Eloquent JavaScript 笔记 十九:Node.js
- JavaScript编程随笔
- Eloquent JavaScript 笔记 三: Functions
- Eloquent JavaScript 笔记 十: Modules
- Eloquent JavaScript 笔记 十三:DOM
- Eloquent JavaScript 笔记 十七:HTTP
- 【js】JavaScript与函数式编程
- javascript函数式编程库-underscore.js
- 【JavaScript】随笔2
- 【JAVA/读书随笔】Chapter 22 算法效率
- 【Android基础】-调用前置摄像头实现的‘手机镜子’
- TCP的三路握手和四路挥手及其临界条件(结合系统调用)
- 查看 RedHat 版本的方法
- obj-y +=和obj-y :=的区别
- UVALive 6934 Good morning! 打表判断
- 【JS/读书随笔】JavaScript编程精解/Eloquent JavaScript:Chapter 2 函数
- 二叉树的先序、中序、后序的递归及非递归实现,以及层次遍历的实现:
- 123
- Objective-C类初始化:load与initialize
- 浙江大学PAT_甲级_1071. Speech Patterns (25)
- iOS异常、错误汇总(一)
- Qt下载网址
- android--笔记--自定义view时的命名空间引用改为res-auto
- lintcode-384