【声明函数的方法】

什么是函数?

封装可重复执行的代码块

声明函数的方法?(两种)

字面量声明:

	let fn = function(){}

关键字声明:

function fn1(){	}

两种声明方式的区别:

字面量声明的函数属于匿名函数、在函数赋值之前是不能调用的
匿名函数不能作为构造函数使用
关键字声明的函数 声明前后都可以调用

函数function var

function var 声明的变量都存在变量提升
function比var提升的更高

函数的形参

形参 --形式上的参数  和  实参 --实际的参数
function add(x,y,z){     //var x,y,z
				console.log(x+y)  //3
			}
			add(1,2)

同时声明多个变量时

 var a = 1,b=2
 console.log(a,b)   //1 2

函数返回值

函数的返回值 使用 return ;如果有函数有返回值,函数调用的时候会返回;如果没有,返回undefined
return 之后 代码不会在执行了

递归

函数内部调用函数
要有终止条件

优点:递归的优点就是简洁、易于理解。
缺点: 递归通常会出现许多重复计算,导致时间复杂度高。
调用栈可能会溢出,其实每一次函数调用会在内存栈中分配空间,而每个进程的栈的容量是有限的,当调用的层次太多时,就会超出栈的容量,从而导致栈溢出。

let sum = 0
			function add(num){
				if(num>10){
					return
				}
				sum+=num
				add(num+1)
			}
			
			add(1)
			
			console.log(sum)
			

运算符

            var a = 1
			var b = 2
			console.log(a / b)
			
			console.log(a**b) 
			console.log(b**b)
			
			console.log(a<b)
			
			console.log(7>5>4) // false
			
			console.log(4<5<7) // true
			
			console.log(7>5==1)
   = 赋值  == 值是否相等   === 值  数据类型
   a++  先赋值 后计算
   ++a 先计算 后赋值
   if判断
switch(num){
				case 0:
				break
				case 1:
				break
				default:	
			}

作用域

变量可使用的范围

作用域链

当使用一个变量的时候 会现在当前作用域查找 如果没找到 会继续向上一层作用域查找 直到找到为止 找不到就报错

闭包

函数嵌套函数
用处:1.读取函数内部的变量;

       2.这些变量的值始终保持在内存中,不会在外层函数调用后被自动清除。

优点:1:变量长期驻扎在内存中;

       2:避免全局变量的污染;

       3:私有成员的存在 ;

特性::函数套函数;

       2:内部函数可以直接使用外部函数的局部变量或参数;

       3:变量或参数不会被垃圾回收机制回收 GC;

缺点: 常驻内存 会增大内存的使用量 使用不当会造成内存泄露

		function fn(){
			var a = 10
			return function(){
				return a
			}
		}
		
		console.log(fn()())

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值