zoukankan      html  css  js  c++  java
  • 匿名函数

    匿名函数
    1、没有名字的函数 或是(没有名字的函数赋值给一个变量的情况)是匿名函数
    2、函数整体加小括号不报错
    //匿名函数
        function(){}//这样写会报错
    
        (function (){
        })

    3、注意:匿名函数光定义,不执行,会报错。(不能光定义)

    匿名函数的调用方法

     //1、直接调用 不要求掌握
        (function (){
            console.log(22)
        })();
     //2、绑定事件 知道就可以
        document.onclick=function (){
            alert(11)
        };
    //3、定时器 直接忘记
        setInterval(function(){
            console.log(33)
        },5000);

    函数的数据类型

    函数也是一种数据类型,归根结底它还是object(对象类型)

     function fu() {
            return  12
        }
        console.log(typeof(fu));//打印 function 
        console.log(typeof(fu()));// 返回值是什么类型就打印什么
    递归
     
    1、递归是一种思想,类似于我们的计算器,开闭原则
    2、递归的实质就是函数自己调用自己(类似于循环)
    3、递归注意点:递归必须有跳出条件,不然就死循环了
    4、要有控制条件,跳出循环
    var i=0;
        fn();
        function fn() {
            alert("爱我中华");
            i++;
            console.log(i);
            //控制条件,来调用函数
            if(i<3 //i>3 ){
                fn()
           //   return;
            }
          //fn();
        }

    递归案例

    //用递归求1+100和
        var sum=0;
        var num=1;
        function getSum(){
            // 不能放在函数里面,因为函数执行后,里面的变量也是重复刷新
            //变量一直等于sum=0 num=1
           // var sum=0; var num=1;
            sum+=num;
            num++;
            if(num<=100) {
                getSum()
            }
            return sum
        }
        console.log(getSum())
        
    //用递归求1+100和
        function fu(n) {
            //跳出条件
            if(n<1){
                return 0;
            }
            //累加
    //第二次调用100-1=99,就是100+99 第二次调用是99-1=98 就是100+99+90
            return n+fu(n-1)
        //fu(100)=100+90+98……+1+0
    
        }
        console.log(fu(100))/第一次调用是100,
     
    回调函数(把函数作为参数使用
    1、函数作为参数进行传递
            a)回调函数必须是一些规则
    2、函数形参后加小括号
            a)函数作为参数进行传递和使用
     //回调函数:函数作为参数进行传递和使用
        fu(text);
        function fu(demo){
            demo()
        }
        function text(){
            console.log("a+b")
        }
    //什么情况下,使用回调函数?
        //回调函数一般是用于定义一个规则来使用的
        //规则的传递只能通过函数实践,通过变量无法达成,所以我们需要传递规则的时候必须使用
        console.log( fu(4,2,text1));
        console.log( fu(4,2,text2));
        console.log( fu(4,2,text3));
        console.log( fu(4,2,text4));
        function fu(num1,num2,demo){
            return demo(num1,num2);
        }
        //定义四个规则:加减乘除
        function text1(a,b){
           return a+b;
        }
        function text2(a,b){
               return a-b;
            }
        function text3(a,b){
               return a*b;
            }
        function text4(a,b){
               return a/b;
            }
  • 相关阅读:
    基于libevent的TLS单向认证CS通信验证
    ubuntu按照时间顺序列出apt安装的程序
    网页识别语音插件annyang可以实现识别中文
    微信小程序图片和签名
    linux run/media/wang/centos_磁盘爆满
    一个页面实现增删改查
    查某关键字在数据库中的哪个位置
    ADO.NET五大对象
    怎样获取当前时间
    string与stringbuilder的区别
  • 原文地址:https://www.cnblogs.com/wdz1/p/7419560.html
Copyright © 2011-2022 走看看