JavaScript基本概念之函数

2017-05-18  本文已影响16人  胖胖冰

函数

ECMAScript 中的函数使用 function 关键字来声明,后跟一组参数以及函数体。

function functionName(arg0, arg1, ... , argN){
        statements
}
function sayHi(name, message) {
    alert("Hello" + name + "," + message);
}

sayHi("Icey", "how are you today?");
function sum(num1, num2){
    return num1+num2;
}
function sum(num1, num2){
    return num1+num2;
    alert("Hello world!") //永远不会执行
}
function diff(num1, num2) {
    if (num1 < num2) {
        return num2 - num1;
    } else {
        return num1 - num2;
    }
}
function sayHi(name, message) {
    return;  //返回undefined
    alert('Hello' + name + ',' + message); //永远不会调用
}

严格模式下的一些限制:

理解参数

ECMAScript中的参数在内部是用一个数组来表示的。函数接收到的始终是这个数组,而不关心数组中包含哪些参数。
实际上,在函数体内可以通过arguments对象来访问这个参数数组,从而获取传递给函数的每一个参数。
其实,arguments 对象只是与数组类似(他并不是Array的实例),因为可以使用方括号语法访问他的每一个元素,用length属性来确定传递进来多少个参数。

function sayHi() {
    return;  //返回undefined
    alert('Hello' + arguments[0] + ',' + arguments[1]); //永远不会调用
}
function howManyArgs() {
    alert(arguments.length);
}
howManyArgs("string",45); //2
howManyArgs(); //0
howManyArgs(12); //1
function doAdd() {
    if (arguments.length == 1) {
        alert(arguments[0]+10);
    }else if(arguments.length == 2){
        alert(arguments[0] + arguments[1]);
    }
}

doAdd(10); //20
doAdd(30,20); //50
function doAdd(num1, num2) {
    if (arguments.length == 1) {
        alert(num1+10);
    }else if(arguments.length == 2){
        alert(arguments[0] + num2);
    }
}
function doAdd(num1, num2) {
    arguments[1] = 10;
    alert(arguments[0] + num2);
}

每次执行这个doAdd()函数都会重写第二个参数(num=10)。

没有重载
上一篇 下一篇

猜你喜欢

热点阅读