浅谈javascript函数

一.关于函数返回值

一般情况下,js函数执行时可以不返回任何返回值,需要返回值时,可以用return,这里有几点需要注意:

1.return后的语句不会被执行。如:

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

2.return后可以不带任何返回值,此时表示函数返回的是undefined,通常是为了组织return后的语句执行。

function sayHi(name, message) {
    return; 
    //永远不会调用
    alert("Hello " + name + "," + message);
}

二.命名问题

严格模式对函数有一些限制:

不能把函数命名为eval或arguments;

不能把参数命名为eval或arguments;

不能出现两个命名参数同名的情况。

如果发生以上情况,就会导致语法错误,代码无法执行。

三.理解参数

函数的参数在内存中被保存为一个数组,可以用arguements对象来访问他们。

arguements的值永远是和命名参数保持一致的,例如:

function doAdd(num1, num2) {
    arguments[1] = 10;
    alert(arguments[0] + num2);
}

但是严格格式下上面的命名是无效的。

另外,关于参数还要记住最后一点:没有传递值的命名参数将自动被赋予undefined值。这就跟定义了变量但又没有初始化一样。例如,如果只给doAdd()函数传递了一个参数,则num2中就会保存undefined值。

四.没有重载

js函数没有具体的函数签名,所以没有重载。