013_JavaScript函数

1. 什么是函数?

1.1. 函数是一组可以随时随地运行的语句。

1.2. JavaScript函数是被设计为执行特定任务的代码块。

1.3. 代码块的最主要用途就是编写函数体。

2. JavaScript函数语法

2.1. JavaScript函数是由这样的方式进行声明的: 关键字function、函数名、由小括号()包含的一组参数, 以及置于大括号{}中的待执行代码。

function name(参数 1, 参数 2, 参数 3) {
    要执行的代码
}

2.2. 函数名可包含字母、数字、下划线和美元符号(规则与标识符相同)。

2.3. 圆括号可包括由逗号分隔的参数:

(参数 1, 参数 2, ...)

2.4. 由函数执行的代码被放置在花括号中:

{
    要执行的代码
}

2.5. 函数形参是在函数定义中所列的名称。

2.6. 函数实参是当调用函数时由函数接收的真实的值。

3. 函数返回

3.1. 在JavaScript中, 函数返回值不必明确地声明它(像在Java中使用void那样)。

function myPrint() {
    document.write("我没有返回值。");                
}

3.2. 即使函数确实有值, 也不必明确地声明它。该函数只需要使用return关键字后跟要返回的值即可。

function myFunction(a, b) {
    return a * b;                // 函数返回a和b的乘积
}

3.3. 另一个重要概念是, 与在Java中一样, 函数在执行过return语句后立即停止代码。因此, return语句后的代码都不会被执行。

function myFunction(a, b) {  
    return a * b; 
    document.write("我这条语句不能执行。");              
}

3.4. 如果函数无返回值, 那么可以调用没有参数的return语句, 随时退出函数。

function myPrint() {
    document.write("我能输出。");
    return;
    document.write("我不能输出。");
}

3.5. 在JavaScript中, 如果函数无明确的返回值或调用了没有参数的return语句, 那么它真正返回的值是undefined。

3.6. 如果函数被某条语句调用后, 函数通常会计算出返回值, 然后把这个返回值返回给调用者。

4. 函数调用

4.1. 函数中的代码将在其他代码调用该函数时执行:

  • 当事件发生时调用函数(当用户点击按钮时调用函数)。
  • 在其它JavaScript代码中调用函数。
  • 函数自调用。

4.2. ()运算符调用函数

4.2.1. 函数名称引用的是函数对象。使用没有()的函数名, 将返回函数的定义。

4.2.2. 函数名称+()引用的是函数结果。

4.3. 实例

function myFunction(a, b) {
    return a * b;                
}

window.alert(myFunction);
window.alert(myFunction(7, 8));

5. 用作变量值的函数

5.1. 使用变量来存储函数的值, 您能够把函数当做变量值直接使用。

function myFunction(a, b) {
    return a * b;                
}

var x = myFunction(7, 8);        // 调用函数, 返回值被赋值给x
window.alert(x);

6. 使用变量引用函数

6.1. 还可以使用变量引用函数, 然后使用变量+()的形式调用函数。

function myFunction(a, b) {
    return a * b;                
}

var x = myFunction;        // 引用函数
window.alert(x(7, 8));

7. 例子

7.1. 代码

<!DOCTYPE html>
<html>
	<head>
		<title>JavaScript函数</title>
		<meta charset="utf-8" />
	</head>
	<body>
		<script type="text/javascript">
			function myFunction(a, b) {
				var str = "函数内的局部变量";
    			return a * b;                
			}

			var value = myFunction(8, 9); // 用作变量值的函数
			var x = myFunction;        // 使用变量引用函数

			document.write(myFunction + '<br />'); // 输出函数的定义

			document.write('myFunction(8, 9) = ' + value + '<br />');
			document.write('x(7, 8) = ' + x(7, 8) + '<br />'); // x(7, 8)使用变量引用函数

			function sayHello() {
				document.write('hello everybody.<br />')
			}
			document.write('没有明确返回值的函数返回值: ' + sayHello() + '<br />');
		</script>
	</body>
</html>

7.2. 效果图

8. 匿名函数

8.1. 没有名称的函数称为匿名函数。

8.2. 没有函数名的函数是函数表达式

function (a, b) {return a * b;};

8.3. 存放在变量中的函数不需要函数名, 他们总是使用变量名调用:

var x = function (a, b) {return a * b};
var z = x(4, 3);

8.4. 例子

8.4.1. 代码

<!DOCTYPE html>
<html>
	<head>
		<title>匿名函数</title>
		<meta charset="utf-8" />
	</head>
	<body>
		<script type="text/javascript">
			var x = function (a, b) {return a * b};
			var z = x(4, 3);

			document.write(z + '<br />');
		</script>
	</body>
</html>

8.4.2. 效果图

9. 自调用函数

9.1. 函数表达式会自动执行, 假如表达式后面跟着()。

9.2. 您无法对函数声明进行自调用。

9.3. 您需要在函数周围添加括号, 以指示它是一个函数表达式:

(function () {
    return "hello!"; // 我会调用我自己
})();

9.4. 例子

9.4.1. 代码

<!DOCTYPE html>
<html>
	<head>
		<title>自调用函数</title>
		<meta charset="utf-8" />
	</head>
	<body>
		<script type="text/javascript">
			var value = (function () {
			    return "hello!"; // 我会调用我自己
			})();

			document.write(value + '<br />');
		</script>
	</body>
</html>

9.4.2. 效果图

10. 箭头函数

10.1. 箭头函数允许使用简短的语法来编写函数表达式。

10.2. 您不需要function关键字, 甚至是return关键字和花括号。

10.3. 如果函数是单个语句, 则可以省略return关键字和大括号:

var value = function(x, y) {
	return x * y;
}
// 上面的函数和下面的箭头函数是等价的
var value = (x, y) => x * y;

10.4. 保留它们可能是一个好习惯:

var value = (x, y) => { return x * y };

10.5. 箭头函数没有自己的this。它们不适合定义对象方法。

10.6. 例子

10.6.1. 代码

<!DOCTYPE html>
<html>
	<head>
		<title>箭头函数</title>
		<meta charset="utf-8" />
	</head>
	<body>
		<script type="text/javascript">
			var fun = (x, y) => x * y;
			document.write(fun(7, 8) + '<br />');

			var myFun = (x, y) => {
				var value = x + y;
				document.write(x + y + ' = ' + value);
			};
			myFun(3.14, 9);
		</script>
	</body>
</html>

10.6.2. 效果图

11. 为何使用函数?

11.1. 您能够对代码进行复用: 只要定义一次代码, 就可以多次使用它。

11.2. 您能够多次向同一函数传递不同的参数, 以产生不同的结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值