ECMAScript 中的函数使用 function 关键字来声明,后跟一组参数以及函数体。
函数的基本语法如下所示:
function functionName(arg0, arg1,...,argN) {
statements
}
以下是一个函数示例:
function sayHi(name, message) { alert("Hello " + name + "," + message); }
ECMAScript 中的函数在定义时不必指定是否返回值。实际上,任何函数在任何时候都可以通过
return 语句后跟要返回的值来实现返回值。请看下面的例子:
function sum(num1, num2) { return num1 + num2; }
这个函数会在执行完 return 语句之后停止并立即退出。因此,位于 return 语句之后的任何代码
都永远不会执行。例如:
function sum(num1, num2) { return num1 + num2; alert("Hello world"); // 永远不会执行 }
理解参数
ECMAScript 函数不介意传递进
来多少个参数,也不在乎传进来参数是什么数据类型。
在函数体内可以通过 arguments 对象来
访问这个参数数组,从而获取传递给函数的每一个参数。
function sayHi() { alert("Hello " + arguments[0] + "," + arguments[1]); }
通过访问 arguments 对象的 length 属性可以获知有多少个参数传递给了函数。
function howManyArgs() { alert(arguments.length); } howManyArgs("string", 45); //2 howManyArgs(); //0 howManyArgs(12); //1
没有重载
在其他语言(如 Java)中,可以为一个函数
编写两个定义,只要这两个定义的签名(接受的参数的类型和数量)不同即可。如前所述, ECMAScirpt
函数没有签名,因为其参数是由包含零或多个值的数组来表示的。而没有函数签名,真正的重载是不可
能做到的。
如果在 ECMAScript 中定义了两个名字相同的函数,则该名字只属于后定义的函数。
function addSomeNumber(num){ return num + 100; } function addSomeNumber(num) { return num + 200; } var result = addSomeNumber(100); //300