1.函数表达式的特征 2.使用函数实现递归 3. 使用闭包定义私有变量
函数表达式是js中一个强大又让人困惑的特性。定义函数的方法有两种:函数声明和函数表达式。
关于函数声明,它的一个重要特征就是函数声明提升.意思就是在执行代码之前会先读取函数声明,这就意味着可以把函数声明放在调用它的语句后面。
函数表达式,不存在函数声明提升
7.1递归
递归函数是在一个函数通过名字调用自身情况实现的
上面这个方法在严格模式和非严格模式下都可以很好地实现。
7.2闭包
闭包是指有权访问另一个函数作用域中的变量的函数。创建闭包的常见方式,就是在一个函数内部创建另一个函数。
7.2.1闭包与变量
作用域链这种配置机制引出了一个值得注意的副作用,即闭包只能取得包含函数中任何变量的最后一个值。闭包保存的是整个变量对象,而不是某个特殊的变量。