函数声明(基本函数 有无返回值 有参无参 匿名函数 自执行函数)

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<script>
    /*
     * 函数
     * 函数是由 事件 或者 主动执行
     * */
    //执行,以下是主动执行
    function method(){
        console.log("函数执行")
    }
      //执行
    method();//执行方法就是函数名称+小括号


    //也可以函数提前声明,基本函数存在提前声明

    method();
    function method(){
        console.log("函数执行")
    }




    //函数根据是否有返回值分为带返回值函数和不带返回值函数
    /*method1();*/
    function method1() {
        console.log("函数执行");//此函数没有返回值
    }
    function method2() {
        console.log("函数执行");
        return true;//此函数带了return+任意类型的数据,有返回值
    }
    //执行,a有值,b无值
    var a = method1();//method()是执行,var a = method1()也是执行
    var b = method2();
    console.log(a, b);//输出的是返回值


    //函数根据是否有参数分为有参函数和无参函数

    function fun1(a, b, c) {//函数体括号里的参数(abc)叫做形参
        console.log('有参', a, b, c);//输出参数
    }
    function fun2() {
        console.log('无参');
    }
    fun1(1, 2);//执行fun1,括号里是实参,对应形参传相对应的值
    fun2();


    function fun3(name, age, sex) {
        console.log('姓名:', name);
        console.log('年龄:', age);
        console.log('性别:', sex);
    }

    fun3('小花', 20, '女');//对应形参传相对应的值,把这些信息传到对应的形参里面去



    //无参函数传递值,无参函数执行函数的时候传递参数,怎么接收
    //使用函数的参数列表对象:argumentsm,这是一个集合类型,如下
    //此时没有形参,但是有实参,则输出一个参数列表对象,把
    /*function fun4() {
    console.log(arguments);
    console.log("参数列表");
    }
    fun4(1, true, 'abc');强行给fun4传参*/

    function fun4() {
        console.log(arguments);
        console.log(arguments[0]);  //key:value,0 key对应的是0的值value
        console.log(arguments[1]);  //key:value
        console.log(arguments[2]);  //key:value
        console.log(arguments.length);//参数列表的长度,传了三个参数,列表长度为3
        console.log("参数列表");
    }
    fun4(1, true, 'abc');//强行给fun4传参


    /*
     * 匿名函数,没有名字的函数
     * */

    /*function(){}//错误的,没有名字,方法如下,用变量接收匿名函数*/


    var f = function () {   //匿名函数用变量接收
        console.log("匿名函数执行");
    }

    f();//匿名函数的输出与基本函数一样

    //那么匿名函数能否提前声明呢?
    //f();此时会报错,f is not a function
    //匿名函数不可以提前声明
    var f = function () {
        console.log("匿名函数执行");
    }


    //匿名函数有无返回值,同上
    var f1 = function () {
        console.log('有返回值');
        return '你好';
    }
    var f2 = function () {
        console.log('无返回值');
    }

    //匿名函数有参无参,同上
    var f3 = function (a, b, c) {
        console.log('有参', a, b, c);
    }
    var f4 = function () {
        console.log('无参');
    }

    f3(1, 2, 3);//执行时传参
    f4();//执行不传参,因为无参
    f1();
    f2();
    var c =f1();
    var d = f2();
    console.log(c,d);//输出的是返回值return


    /*
     * 自执行函数,也是匿名函数,没有名字
     * 自执行函数有无参数有无返回值也是同上
     * */
    //给外面整体加一个小括号:(function(){}),证明是一个整体
    var nn = (function (a, b) {
        console.log("自执行", a, b);

        return 1;
    })(1, 2);//最后给外面加一个小括号来执行

    console.log(nn);//输出的是返回的值,即return的值
</script>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值