访问变量时,如果当前作用域没有找到该变量,会一级一级往上层作用域查找,直到找到
var num = 100;
function fn() {
function fn1() {
console.log(num)
}
fn1()
}
fn()
只赋值不声明时,往上层找变量的声明,没找到的话 num 会成为全局变量
function fn() {
var num
function fn1() {
num = 1000;
}
fn1()
console.log(num);
}
fn()
console.log(num)
递归函数:在函数内部调用自身的函数.
递归函数内部应该写上返回点(到某个条件时,停止递归)
用递归函数计算 n 的阶乘
function fn(n) {
if (n === 1) return 1
return n * fn(n - 1)
}
console.log(fn(4));
斐波那契数列 数列: 1 1 2 3 5 8 13 21... 前两位是1 第三位开始的每一位是前两位之和 求数列第 n 位是多少
function fs (n) {
if (n === 1 || n === 2) return 1
return fs(n-1)+fs(n-2)
}
console.log(fs(10)); //输入数字太大的话,浏览器算不出来