函数的作用域

你。 提交于 2019-12-23 21:42:21

什么是作用域

JS的函数作用域,将作用域拆开来看,“作用”表示读写操作,函数可以读取代码,改写代码;“域”表示空间,范围,区域。

步骤

1、逐行解读过程中,当碰到表达式的时候,就会用表达式修改预解析的值;表达式是=、+、-、*、/、参数(注意,参数也是表达式,参数可以被修改)
2、预解析的时候,遇到重名的变量名称,字母,值留下一个;
3、预解析时,当变量碰到函数的名称一致的时候,值留下函数块。因为预解析的时候,变量其实是未定义的状态
4、逐行解读代码时,碰到函数,如果没有调用,表示函数没有执行。此时直接略过,直到有表达式才能改变变量的值。
5、所有变量,在正式运行代码之前,都会提前赋一个值;未定义。所有函数,在预解析的时候,都是函数块;
6、逐行解读代码时,是从上到下,从函数内部到函数外部的执行过程

解析

<script>
		var a = 20;
		var fun = function fun(){};
		function fun1(){
			console.log(b);//undefined
			var b = 30;
			console.log(a);//20
			var d = 20;
			function fun2(){
				console.log(d);//20
			    d = 30;
				console.log(d);//30
			}
			fun2();
		}
		fun1();
		console.log(fun);
	</script>
GO{
	a : 20,
	fun : function fun{},
}
fun1 AO{
	b : 20,
	d : 20,
}
fun2 AO{
	d : 30,
}

在这里插入图片描述

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!