JavaScript之作用域

1. 作用域

变量能够起作用的范围,作用域分为全局作用域和局部作用域

全局作用域:

  • 1. 最外层函数或者在最外层函数外通过var定义的变量;
  • 2. window对象的属性和方法具有全局作用域;
  • 3. 在函数内部不通过var来声明的变量具有全局作用域。

局部作用域:

  • 1. 在函数内部通过var来声明的变量或者在函数内部定义的函数具有局部作用域;
  • 2. 函数的形参具有局部作用域。

×在ES5中,函数是区分局部和全局的唯一的代码块。

×在函数体内,局部变量的优先级高于全局变量。

×全局变量的生存周期从变量定义开始,到页面关闭才会销毁;局部变量在函数执行完销毁。

2. 递归函数

递归函数就是在函数体内部调用自己的函数

//利用递归求阶乘 100! -> 100*99!
			
			//1.定义一个函数,函数的功能是求某个数的阶乘
			//2.n - > n * (n-1)! -> …… ->n*(n-1)*……*1!
			
			function jc(n){
				if(n==1){
					return 1;
				}
				return n * jc(n-1);
			}
			
			var num = jc(5); //5*jc(4)=>5*4*jc(3)=>5*4*3*jc(2)=>5*4*3*2*1
			

3. 构造函数

构造函数本身也是函数,只不过可以用来创建对象。

构造函数  通过new运算符在函数调用  会得到一个对象

原文地址:https://www.cnblogs.com/a-peppa-pig/p/9379220.html