<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>作用域链</title>
<script>
//作用域链:内部函数访问外部函数的变量,
//采取的是链式查找的方式来决定取哪个值
//这种结构就叫做作用域链 就近原则
// var num = 10;
// function fn(){//外部函数
// var num =20;
// function fun(){//内部函数
// console.log(num);//因此输出结果为20
// }
// fun();
// }
// fn();
//案例1:结果是几?
// function f1(){
// var num = 123;
// function f2(){
// console.log(num);//站在目标出发,一层一层往外找,最近的即为执行目标
// }
// f2();
// }
// var num = 456;
// f1();
// //f1,num = 456是0级链,f1到num =123;是1级链,num =123,f2,console.log(num)是三级链
//案例2:结果是几?,
var a = 1;
function fn1(){
var a = 2;
var b = '22';
fn2();
function fn2(){
var a = 3;
fn3();
function fn3(){
var a = 4;
console.log(a);//a的值为4
console.log(b);//b的值为22
}
}
}
fn1();
</script>
</head>
<body>
</body>
</html>
<!-- 作用域链:
1.只要是代码,就至少有一个作用域
2.写在函数内部的局部作用域
3.如果函数中还有函数,那么在这个作用域中就又诞生个作用域
根据在内部函数可以访问外部函数变量的这种机制,用链式查找决定
哪些数据能被内部函数访问,就称作作用域链。 -->
JS学习之作用域链
最新推荐文章于 2024-06-19 14:45:15 发布