进击的JavaScript小白(四)——函数

从初中开始,函数就已经出现了,好不容易毕业了,还被函数卡着脖子,这感觉真是。。。。

一、函数的作用

让代码可以复用,提高代码的利用率

二、函数的声明方式

1、函数的声明语句

function fun () {
//函数主题代码
}

2、函数的表达式

var fun = function () {
//函数体
}

三、函数的调用

函数代码执行需要使用函数调用操作

fun();//函数名为fun

四、函数的参数

1、当一个函数内的某些值不确定时可以设置参数
2、形参:书写在函数体的小括号中,用于占位置,多个参数使用逗号分隔
3、实参:书写在函数调用的小括号中,当函数调用后,会将实参值赋给对应的形参

五、函数的返回值

1、原因:在函数外面无法操作函数内声明的变量,得不到函数计算的结果
2、方式:在函数中设置return值,并通过函数调用进行接收
3、return :return具备结束函数的功能,即跳出函数;也可以单独使用,即不设置返回值,仅仅进行跳出函数操作;默认值为undefined

六、作用域

1、作用域表示起作用的范围
2、全局作用域:不在任何函数内。声明在全局作用域中的变量为全局变量,在任意位置均可访问。隐式声明全局变量:任意位置不加var的变量赋值操作
3、局部作用域:可以在任何函数内。声明在局部作用域中的变量为局部变量,只能在声明这个变量的作用域内部访问。
4、作用域的访问规则
在这里插入图片描述

七、预解析

1、每个作用域代码执行前都会执行与解析操作,这是js自动完成的
2、查找当前作用域中的var变量声明,将声明提升到当前作用域顶端,赋值保留在原位置
3、查找当前作用域中的函数声明语句,将函数体整体提升到当前作用域顶端,调用保留在原位置
4、由于函数声明语句是整体提升,所以在书写位置前后调用均可执行
5、函数表达式只能在书写位置之后进行调用

八、函数的分类

1、基本函数

function fun () {}
var fun1 = function () {};

2、匿名函数

匿名函数没有函数名,所以不能单独使用

var fun = function () {};

3、立即执行函数(自调用函数)

1、效果:在书写位置执行一次
2、作用:进行作用域的包裹,减少全局变量的使用
3、使用位置:在每个功能外,使用立即执行函数包裹即可
4、注意点:立即执行函数后必须添加分号;

		(function () {
			var sum = 0;
			for (var i = 1; i <= 100; i++) {
				sum += i;
			}
			console.log('这是一个立即执行函数。');
		})();

4、回调函数(将函数作为参数使用)

1、将函数作为参数使用,需要传入的是函数体,所以一定不能在传参时进行调用
2、 使用场景:当一个函数中的某些功能代码不确定时,可以使用函数参数(起到对代码包裹传入的作用)。

5、将函数作为返回值

6、递归函数

函数内调用当前函数

		var count = 0;
		function fun () {
			if (count >= 10) {
				return;
			}
			console.log('这是函数fun的代码');
			count++;
			fun();
		}
		fun();

九、arguments的使用

1、用于获取某个函数本次调用时传入的所有实参
2、具有索引和长度,是伪数组结构,没有数组的方法

猜你喜欢

转载自blog.csdn.net/weixin_40589472/article/details/83989783