更新时间:2021-06-25 来源:黑马程序员 浏览量:
当在一个函数内部声明另一一个函数时,就会出现函数嵌套的效果。当函数嵌套时,内层函数只能在外层函数作用域内执行,在内层函数执行的过程中,若需要引人某个变量,首先会在当前作用域中寻找,若未找到,则继续向上一- 层级的作用域中寻找,直到全局作用域。我们称这种链式的查询关系为作用域链。
下面我们通过代码演示在函数嵌套中的作用域链效果。
var num = 10;
function fn() { //外部函数
var num = 20;
function fun() { //内部函数
console.log (num) ; //输出结果: 20
}
fun() ;
}
fn() ;在上述代码中,fun(函数内访问了num变量,由于在fun(函数内部不存在num变量,所以向,上级作用域中查找。fun() 函数的上级作用域是fn0函数,在该函数中找到了num变量,所以输出结果为20。假如在fn)函数中也没有num变量,则再往上查找,这时就到了全局作用域,此时num的值就是全局作用域下的10。毕业16个工作日,平均薪资13180元,就业率100%,广州黑马AI智能应用开发(Java)学科20250529班
2026-03-06毕业32个工作日,平均薪资11147元,就业率95%,广州黑马AI智能应用开发(Java)学科20250326班
2026-03-05黑马程序员2025全国就业数据发布:全学科平均就业率92.07%,AI开发类就业平均薪资达11869.67元。
2026-03-05黑马全国校区齐开班!场面太太太壮观了!
2026-03-03AI智能应用开发课程紧贴企业刚需,全程高效学习,直达中高级软件开发水平
2026-02-28风口正劲!黑马程序员又一AI智能应用开发班毕业当天100%就业!
2026-02-27