学习javascript第五天总结

59 阅读1分钟

作用域:
1:全局作用域:script标签内部声明的变量,全局作用域的变量在哪里都可以使用,全局作用域申明的变量全都在windows中。

2:局部作用域:也称函数作用域,在函数内部的大括号内,在函数作用域内声明的变量,只能在当前函数内使用,在函数外部无法使用,不会挂载到windows对象中。

变量的访问规则:
console.log()
变量会先在自己当前作用域内查找,找到直接使用,如果没有找到,会向上层作用域继续查找,如果没找到会一直向上层查找,一直找到最顶层作用域。(不会向下层查找)

变量的赋值规则:
a=1
与变量的访问规则一样,如果当前作用域没有,会一直向上层查找,不会向下层查找。

递归函数:
function fn(){
if(n == 1){
return 1
}
return n * fn(n-1)
}

如果fn(4) (计算4的阶乘)
第一次调用传参4
形参4
不符合if条件 执行
return 4 * 6(3的阶乘)

第二次调用传参3
形参3
不符合if条件 执行
return 3 * 2(2的阶乘)

第三次调用传参
形参2
不符合if条件 执行
return 2 * 1(1的阶乘)

        
第四次调用传参1
形参1
符合if条件 return 1
fn(1)=1