函数 – 学习画板

首页 » JavaScript » 函数

函数

函数对于任何语言来说都是一个核心的概念。通过函数可以封装任意多条语句,而且可以在任何地方、任何时候调用执行。ECMAScript中的函数使用function关键字来声明,后跟一组参数以及函数体。函数的基本语法如下所示:

function functionName(arg0, arg1, ..., argN) {
    statements
}

一下是一个函数示例:

function dayHi(name, message) {
    alert("Hello " + Name + "," + message);
}

这个函数可以通过其函数名来调用,后面还要加上一对圆括号和参数(原括号中的参数如果有多个,可以用逗号隔开)。调用sayHi()函数的代码如下所示:

say Hi("Nicholas", "how are you today?");

这个函数的输出结果是“Hello Nicholas,how are you today?”。函数中定义中的命名参数name和message被用作了字符串拼接的两个操作符,而结果最终通过警告框显示了出来。

ECMAScript 中的函数在定义时不必指定是否返回值。实际上,任何函数在任何时候都可以通过return语句后跟要返回的值来实现返回值。请看下面的例子:

function sum(num1, num2) {
    return num1 + num2;
}

这个sum()函数的作用是把两个值增加起来返回一个结果。我们注意到,除了return语句之外,没有任何声明表示该函数会返回一个值。调用这个函数的额实例代码如下:

var result = sum(5, 10);
alert(result);

这个函数会在执行完return语句之后停止并立即退出。因此,位于return语句之后的任何代码都永远不会执行。例如:

function sum(num1, num2) {
    return num1 + num2;
    alert("Hello world"); //永远不会执行
}

这个例子中,由于调用alert()函数的语句位于return语句之后,因此永远不会显示警告框。当然,一个函数中也可以包含多个return语句,如下面这个例子中所示:

function diff(num1, num2) {
    if (num1 < num2) {
        return num2 - num1;
    } else {
        return num1 - num2;
    }
}
var result = diff(7, 10);
alert(result);

这个例子中定义的diff()函数用于计算两个数值的差。如果第一个数比第二个小,则用第二个数减去第一个数;否则,用第一个数减去第二个数。代码中的两个分支都具有自己的return语句,分别用于执行正确的计算。

另外,return语句也可以不带有任何返回值。在这种情况下,函数在停止执行后将返回undefined值。这种用法一般用在需要提前停止函数执行而又不需要返回值的情况下。比如在下面这个例子中,就不会显示警告框:

function sayHi(name, message) {
    return;
    alert("Hello " + name + "," + message);
}

推荐的做法是要么让函数使用都返回一个值,要么永远都不要返回值。否则,如果函数有时候返回值,有时候不返回值,会给调试代码带来不变。

此文章发表在 JavaScript 标签为 . 将固定链接加入收藏.