Js中的函数

什么是函数:具有特定功能的代码块

函数与方法:调用的方式不同 函数通过函数名 | 方法通过.语法调用(点语法)

定义函数:function函数名(参数列表) {

    函数体;

    (函数体可以包含函数的返回值)

}

// 函数的调用: 函数名(参数列表)

//      函数的调用()一定不可以省略, 参数列表看情况(不管需不需要,均可以传或不传)

// 函数的分类:

// 无参函数:

function fn1() {

    console.log("无参函数")

}

fn1();

// 有参函数:

function fn2(a, b) {

    console.log("a,b的和:", a + b)

}

fn2(10, 20);

// 匿名函数:

var fn3 = function () {

    // 匿名函数虽然没有名字, 但会开辟内存空间, 所以当然可以用一个变量来指向这个内存空间

    console.log("没有直接定义名字的函数");

};

fn3();  // 系统不好在()()之间添加;作为语句结束,需要添加分号时一定需要手动添加

fn4 = fn3;

fn4();

// 匿名函数的自调用

(function () {

    // 定义一个匿名函数, 至少需要使用一次, 使用一次的方式就叫做 匿名函数的自调用

    // 如果匿名函数不存在任何使用, 编译就无法通过

    // 匿名函数的自调用:

    //      1.将整个匿名函数作为一个整体, 用()将其包裹

    //      2.并完成函数的调用, 添加 (参数列表)

    console.log(" 匿名函数的自调用");

})();

// 函数的参数:

// 函数的返回值:

// 函数的嵌套(定义 | 调用)

匿名函数出现的原因:为了生成一个局部的作用域(不被别人访问或出现重复定义的变量 )

函数的闭包:

// 闭包: 局部的函数(被一个函数包裹的函数) // 为什么使用闭包: // 1.一个函数要使用另一个函数的局部变量 // 2.闭包会持久化包裹自身的函数的局部变量 // 3.解决循环绑定

// 函数的嵌套定义
function outer() {
    var num = 10;
    function inner() {
        // 1.在inner函数中,使用了outer的局部变量num
        return num;
    }
    return inner;
}
var innerFn = outer();
// 2.借助闭包,将局部变量num的生命周期提升了
var num = innerFn();
console.log(num);

原文地址:https://www.cnblogs.com/zhouhai007/p/10145439.html