return的意义、js解析过程与作用域的理解

一、return的意义

function fu(){
	alter("111");
	return "1";   // return 后面得东西不执行
	alter("a");
}
var a=fu();
alter(a);
  • 函数分为:过程和结果,return是返回结果,其他是过程。所以弹框先弹出111,然后弹出1(获取到的结果)。
  • return 之后的代码是不执行的,所以a是不弹出来的。

二、js解析过程与作用域的意义

alter(b);       //弹出函数块
alter(a);      //undefined
var a=0;     
alter(b());    //1
alter(a);       //0
function b(){
	alter("1");
}

js解析过程分为定义和执行过程

// 如上面得代码的定义:就是var 和 function
// 下面梳理定义和执行两个过程
// 定义:a 、function b() {..};
// 执行是:从上到下
// 执行:a=0 、alter("1")
a();
var b=3;
function a(){
var c=2;
alter(b);  
// 结果是弹出undefined,因为a先执行,执行了a,那么也就是来到a函数里面这个域来分析定义和执行
// script域:
// 定义:
		 var b
         function a(){...};
// 执行:
		 a();
// 此时a的域
         // 定义:
         		var c 
         // 执行:
         		alter(b);   // 因此这里undefind
         // 函数结束
// 执行
         b=2
// 因此,结果是弹出undefined。
}

<script>
	alter(a);
</script>

<script>
	var a=10;
</script>


// 结果是出错。
// 因为会执行上面的代码先,在执行下面这块域的代码。假如两个域反过来,则弹出10.
var a;
function a(){};
alter(a);
// 结果是弹出函数块,因为函数定义比变量定义大。

你可能感兴趣的:(JS)