<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script>
/*
注意点: 初学者在研究"作用域链"的时候最好将ES6之前和ES6分开研究
1.需要明确:
1.ES6之前定义变量通过var
2.ES6之前没有块级作用域, 只有全局作用域和局部作用域
3.ES6之前函数大括号外的都是全局作用域
4.ES6之前函数大括号中的都是局部作用域
2.ES6之前作用域链
2.ES6之前作用域链
1.1.全局作用域我们又称之为0级作用域
2.2.定义函数开启的作用域就是1级/2级/3级/...作用域
2.3.JavaScript会将这些作用域链接在一起形成一个链条, 这个链条就是作用域链
0 ---> 1 ----> 2 ----> 3 ----> 4
2.4.除0级作用域以外, 当前作用域级别等于上一级+1
3.变量在作用域链查找规则
3.1先在当前找, 找到就使用当前作用域找到的
3.2如果当前作用域中没有找到, 就去上一级作用域中查找
3.3以此类推直到0级为止, 如果0级作用域还没找到, 就报错
*/
//var num=666;//0级作用域
function demo()
{
var num=123;//一级作用域
function test()
{
//var num=789;//二级作用域
console.log(num);
}
test();
}
demo();
</script>
</body>
</html>
JS中作用域链上 20
原创
©著作权归作者所有:来自51CTO博客作者陈业贵的博客的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:JS中作用域下 21
下一篇:JS中变量作用域 19
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Python基础笔记-函数的作用、返回值、参数、作用域
主要记录了函数以及函数的参数、返回值、执行、传参、作用域等内容。
作用域 数据 全局变量 函数 Python基础 -
js作用域链
1. 作用域 Javascript作用域问题简单的可以用一句话来概括:两种类型的作用域( global, function)、三条作用域链。 理
javascript function object 语言 js引擎 -
JS 作用域与作用域链
一、作用域理解就是一块“地盘”,一个代码所在的区域它是静态的(相对于上下文对象),在编写代码时就确定了。分类全局作
javascript 前端 作用域 作用域链 js高级 -
js--词法作用域链
js--词法作用域链
js+css js--词法作用域链