2.1 函数定义

函数声明

    function sum1(a, b) {
        return a + b;
    }

函数表达式

    var sum2 = function (a, b) {
        return a + b;
    }

构造函数

    var sum3 = new Function('a', 'b', 'return a + b');

函数自调用

  • 函数表达式后紧跟 (),相当于定义了函数,直接调用而已,还省下了函数声明成变量;
    (function (a, b) {
        console.log(a+b);
        return a + b;
    })(1, 2);
  • 相当于
    // 先声明
    var sum2 = function (a, b) {
        return a + b;
    }

    // 再调用
    sum2(1, 2);
  • 自调用函数也可以有返回值
    var res = (function (a, b) {
        return a + b;
    })(1, 2);
    // 这里的 res 不是上面的函数表达式,而是返回值了。

函数本身是对象

  • arguments 参数列表;
    function sum4() {
        var len = arguments.length;
        var a = arguments[0] || 1;
        var b = arguments[1] || 1;

        return (a + b) * len;
    }
  • toString() 返回描述