Javascript 复习之递归、预编译 (学习笔记)

本文探讨了JavaScript中的递归概念,通过阶乘和斐波那契数列实例阐述其应用。同时,详细解释了预编译过程,包括函数声明提升和变量声明提升,并分析了全局变量的特性。预编译步骤包括创建活动对象(AO)、形参和变量声明、实参与形参匹配以及函数声明的处理。最后,简要提及了测试与隐式转换相关内容。
摘要由CSDN通过智能技术生成

递归:

  1. n的阶乘?
// n! = n * (n-1) ! 
function mul(n){
   
	if(n == 1){
   
		return 1;
	}
	return n * mul(n-1);
}

注意:1.找规律       2.找出口

2.斐波那契数列?

// fb() == fb(n-1) + fb(n-2)
function fb(n){
   
	if(n == 1 || n == 2){
   
		return 1;
	}
	return fb(n - 1) + fb(n - 2);
}

这个方法叫做递归。。

 

预编译:

函数声明整体提升
变量 声明提升

test();
function test(){
   
	console.log(1)
}
// 1
console.log(a);
var a = 123;

//undefined

 

1.imply global:暗示全局变量:即任何变量,如果未声明就赋值,此变量就为全局对象所有。
例: a = 10;
a = b = 123;

function test() {
   
  var a = b = 123;
  console.log(a);
  console.log(b);
  console.log(window.a);
  console.log(window.b);
}
test();

// AO:{
   
//   a:undefined,
// }

// GO:{
   
//   b = 123;
// }
//输出:
// 123
// 123
// undefined
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值