博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

JavaScript之函数

Posted on 2017-08-31 18:25  开飞机的贝塔  阅读(127)  评论(0编辑  收藏  举报

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