作用域
什么是作用域,就是一个变量可以生效的范围
变量不是在所有地方都可以使用的,而这个变量的使用范围就是作用域
\
全局作用域
全局作用域是最大的作用域
在全局作用域中定义的变量可以在任何地方使用
页面打开的时候,浏览器会自动给我们生成一个全局作用域 window
这个作用域会一直存在,直到页面关闭就销毁了
\
局部作用域
局部作用域就是在全局作用域下面有开辟出来的一个相对小一些的作用域
在局部作用域中定义的变量只能在这个局部作用域内部使用
在 JS 中只有函数能生成一个局部作用域,别的都不行
每一个函数,都是一个局部作用域
\
有了作用域以后,变量就有了使用范围,也就有了使用规则
变量使用规则分为两种,访问规则 和 赋值规则
\
访问规则
当我想获取一个变量的值的时候,我们管这个行为叫做 访问
获取变量的规则:
首先,在自己的作用域内部查找,如果有,就直接拿来使用
如果没有,就去上一级作用域查找,如果有,就拿来使用
如果没有,就继续去上一级作用域查找,依次类推
如果一直到全局作用域都没有这个变量,那么就会直接报错(该变量 is not defined)
作者:用户9555800742361
链接:juejin.cn/post/715173…
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
递归函数:
在函数内部,调用自身,此时就是写了一个递归函数,但是他是死递归
要想写一个正确的递归函数,需要在递归内部,写上返回点(到某个条件时,停止递归)
function fn(n){
//先写折返点,到某个条件停止递归
if (n == 1) {
return 1
}
//不符合结束递归时的代码
return n * fn(n - 1)
}
斐波那契数列:第一位和第二位 固定为1,从第三位开始,每个位置的数字,是前两位数字的和
function add(n) {
if (n == 1 || n == 2) {
return 1
}
return add(n - 1) + add(n - 2)
}
var num = add(6)
console.log(num)
作者:用户9555800742361
链接:juejin.cn/post/715173…
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。