js的作用域链

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>

<script type="text/javascript">
// 作用域链
// 每一个函数都有一个作用域, 如果一个函数内部又嵌套链另外一个函数,
// 嵌套的函数也会又一个作用域,这样,嵌套函数就能访问到外部函数中的变量,
// 以及全局作用域中的变量,此时就形成了一条作用域链
// (包括:自身的作用域, 以及外部函数的作用域, 以及全局作用域)

// 全局作用域: script标签包裹的内容就是一个作用域
var abc = 123;

// fn 中能访问到的变量由那些:
// 1 自身定义的变量
// 2 上一级作用域中的变量(全局作用域)

// foo 中能访问到的变量由那些:
// 1 自身定义的变量
// 2 函数fn中的变量
// 3 全局作用域中的变量
function fn() {
var a = 456;

function foo() {
var num = 123;

// f的作用域链: f作用域 -> foo作用域 -> fn作用域 -> 全局作用域
function f() {}
}
foo();
// console.log(num);
}
</script>
</body>
</html>

posted @ 2018-09-05 16:45  停留就好  阅读(86)  评论(0编辑  收藏  举报