web大前端与移动开发-JS函数的声明、匿名函数的使用、全局变量与局部变量

JS函数概述

函数,是一种封装。就是将一些语句,封装到函数里面。通过调用的形式,执行这些语句。
函数可以一次定义,多次调用。

函数的声明
JavaScript 有三种声明函数的方法。

(1)function 命令

	function是一个关键字,和var、typeof一样,都是关键字,后面要加空格。
	函数名字的命名规定,和变量的命名规定一样。只能是字母、数字、下划线、美元符号,不能以数字开头。
	后面有一对儿空的小括号,里面是放参数用的。大括号里面,是这个函数的语句。
	function functionName([参数1][,参数2][,参数N]){
		函数的功能代码;
		[return 参数r]
	}

说明:
function关键字是必须的,全小写。
functionName:函数的名称。函数名的命名规则与变量命名一样。
():是定义函数时接收数据的参数。参数可有可无,多个参数之间用逗号隔开。
形参(形式参数):
定义函数时的参数就是"形参";主要用来接收调用函数者传过来的数据。
形参的名称,与变量的命名规则一样;但形参不能用"var"关键字定义。
参数只能存在于函数中。
参数不需要声明,直接使用。
{}是函数的功能。
return语句,可以向函数调用者返回一个值(如果返回值不写,函数返回的结果就是undefined),并立即结束函数的运行(就像break语句,可以立即结束循环)。
示例:

	//定义函数,设置形参(用于接收传入的数据)
	function getSum(x,y){
		var sum = x+y;//功能代码
		return sum;//返回结果
	}
	var num = getSum(2,3);//调用函数,传入实参,得到返回结果,赋值给 num
	document.write(num);

实参(实际参数):
调用函数时的参数称为"实参"。实参就是真正的数据。
函数的调用:
函数定义是不会执行的,那么,函数必须调用,才会有效果。
直接写函数名后跟小括号(),如果有参数则写参数。
```小括号不能省略;如果省略小括号返回的是函数本身。``

(2)函数表达式(变量赋值)
可以通过变量赋值的方式,将一个匿名函数(匿名函数就是没有函数名的函数)赋值给变量。这个匿名函数又称函数表达式。

	var fun = function([参数1][,参数2][,参数N]){
		函数的功能代码;
		[return 参数r]
	};

调用该函数:

	fun();//与普通函数的调用一样,只需要将函数名改成变量名即可。

示例:

	var fun = function(){
		document.write('我是函数');//在页面打印一段字符串
	};
	fun();

匿名函数:

	function(){
		document.write('我是匿名函数');
	}

匿名函数的执行:
用小括号将匿名函数括起来,然后在匿名函数后面加上一个括号即可立即执行。
如:

	(function(){
		document.write('我是匿名函数');
	})()

(3)Function()构造函数

函数也可以通过Function()构造函数来定义(Function()构造函数并不常用)。
	var www = Function("x","y","var num = x*y;return num;");
	document.write(www(2,3));

等价于:

	function www(x,y){
		var num = x*y;
		return num;
	}
	document.write(www(2,3));

说明:
Function()构造函数可以传入任意数量的字符串参数,最后一个参数所表示的文本是函数体;它可以包含任意的Javascript 语句,每条语句之间用分号分割。传入构造函数的其他所有的参数字符串是指定函数的名字的字符串。如果定义的函数不包含任何参数,只需给构造函数简单地传入 一个字符串函数体即可。

注意:
Function()构造函数允许JavaScript在运行时动态的创建并编译函数。

每次调用Function()构造函数都会解析函数体,并创建新的函数对象。如果是在一个循环或者多次调用的函数中执行这个构造函数,执行效率会降低。相比之下,循环中的嵌套函数和函数定义表达式则不会每次执行时都重新编译。

Function()构造函数非常重要的一点,它所创建的函数并不使用词法作用域,函数体代码的编译总是会在顶层函数执行。

全局变量和局部变量
全局变量:
可以在网页的任何地方(函数内部和函数外部)使用的变量,就是"全局变量"。
在函数外部定义的变量,就是"全局变量"。
在函数内部,省略关键字var定义的变量是"全局变量"。
"全局变量"既可以在函数外使用,也可以在函数内部使用。
"全局变量"在网页关闭时,自动消失(释放空间)。
局部变量:
只能在函数内部使用的变量,称为"局部变量"。
"局部变量"在函数内部定义,在函数内部使用。
"局部变量"在函数外部无法访问。
"局部变量"在函数执完完毕就消失了。

注意:
var关键字尽量别省略,省略后"全局变量"和"局部变量"会搞不清楚。

猜你喜欢

转载自blog.csdn.net/weixin_44486539/article/details/86551925