定义函数有两种方式:函数声明和函数表达式。它们之间一个重要的区别是函数提升。
1.函数声明会进行函数提升,所以函数调用在函数声明之前也不会报错:
```
test();
function test(){
alert(1);
}
```
2.函数表达式不会进行函数提升,函数调用在函数声明之前的话会报错:
```
test(); // test is not a function
var test=function(){
alert(1);
}
```
递归函数是通过在函数内部调用自身实现的。
直接使用函数名进行递归调用
```
function f(num){
if(num==1){
r继续阅读 »
Closures are functions that refer to independent (free) variables
闭包是静态方式/词法方式进行存储所有父作用域的一个函数
在 JavaScript 高级程序设计里面通过一个createComparisonFunction()函数和这个函数的作用域链之间的关系图说得很明白为什么闭包可以访问外部函数的变量,是因为闭包的作用域链不仅包括自己本地的活动对象,还包括外部函数作用域链所指向的活动对象继续阅读 »