1. 递归
递归函数是在在函数内自己调用自己
var factorial=(function f(num){
if(num<=1){
return 1
}else{
return num *f(num-1)
}
})
2. 闭包
有权访问另一个函数作用域 中变量的函数,这关乎到函数的作用域链;容易产生内存泄漏。
3.块级作用域,
js本身没有块级作用域的概念。使用闭包可以在js中模仿块级作用域。
4. 私有变量,
总结来说就是外部访问不了函数内部定义的变量,可以将其认为私有变量,函数内部可以访问外部变量。