美文网首页前端基础学习
函数08(递归、回调函数、函数中的展开语法)

函数08(递归、回调函数、函数中的展开语法)

作者: 小雪洁 | 来源:发表于2020-04-26 22:02 被阅读0次
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>递归算法</title>
    </head>
    <body>
    </body>
    <script>
        //递归算法写阶乘函数
        function factorial(num){
            //return num==1?1:num*factorial(num-1);
            return num==1?1:num*factorial(--num);
        }
        console.log(factorial(5));//120
        //递归求和
        function sum(...args){
            return args.length==0?0:args.pop()+sum(...args);
        }
        console.log(sum(1,2,3,4,5));
        //递归打印星星
        /* function star(a){
            if(a==0){
                return "";
            }else{
                document.write("*".repeat(a)+"<br/>");
                star(--a);
            }
        } */
        function star(a){
            //console.log(document.write("*".repeat(a)+"<br/>"));//undefined
            return a?document.write("*".repeat(a)+"<br/>")||star(--a):"";
        }
        star(5);
    </script>
</html>
<!DOCTYPE html>
<html>
   <head>
       <meta charset="utf-8">
       <title>回调函数</title>
   </head>
   <body>
       <button>haoxuejie</button>
   </body>
   <script>
       //在函数A内调用的函数B,则函数B就称为回调函数
       document.querySelector("button").addEventListener("click",function(){
           alert(this.innerHTML);
       });//addEventListener()里面定义的匿名函数就是回调函数
       let a=[1,2,3,4,5];
       //map()里面的定义的函数就是回调函数
       a.map(function(item,index,arr){
           arr[index]+=10;
       });
       console.log(a);// [11, 12, 13, 14, 15]
       
   </script>
</html>

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>函数中使用展开语法</title>
    </head>
    <body>
    </body>
    <script>
        //收和放
        //展开语法的表达式在等号右边就是放
        let name=["hxj","ydc"];
        let [h,y]=[...name];//展开语法在等号右边把name数组展开赋值给左边相应变量
        console.log(h,y);
        //展开语法表达式在等号左边就是收集
        let [a,...hy]=['hhh','hxj','ydc'];
        console.log(a);//hhh
        console.log(hy);//['hxj','ydc']
        //旧版js中如果函数参数不确定有多少个,从arguments中获取参数信息
        //新版js中函数形参使用展开语法
        function sum(...args){
            //args就是一个数组,可以直接用数组方法
            //console.log(args);//[1, 1, 3, 4, 5]
            return args.reduce((a,b)=>a+b);
        }
        console.log(sum(1,1,3,4,5));
        //注意函数参数中使用展开语法,这个展开语法的表达式要放在最后,如下
        //计算折扣后的总价
        function total(discount,...price){
            let tp= price.reduce((a,b)=>a+b);
            return tp*(1-discount);
        }
        console.log(total(0.1,100,200,300));
    </script>
</html>

相关文章

  • 函数08(递归、回调函数、函数中的展开语法)

  • JS 回调函数(callback)和递归函数(recursive

    有很多人不理解回调函数和递归函数,我们在这里研究一下。(本文仅适合新人) 什么是回调函数,什么是递归函数 回调函数...

  • javascript回调函数、递归函数

    javascript回调函数、递归函数 一、回调函数 通过函数的指针来调用函数(把一个函数的指针作为另一个函数的参...

  • 回调函数

    回调函数:函数当做一个参数来使用的时候,这个函数叫做回调函数。 回调函数语法: 解释: callback: 这个是...

  • 递归、回调

    递归函数:在函数的内部调用自己,递归函数应该给出口否则就会一直执行 若函数不给出口 递归的小应用 回调函数:把一个...

  • ES6的async用法

    async 函数算是一个语法糖,使异步函数、回调函数在语法上看上去更像同步函数 async function as...

  • 2020-03-02 MATLAB App Designer——

    1. matlab自定义回调函数语法法则 2. 在Callback函数中插入

  • JavaScript函数_08回调函数

    回调函数 回调函数(回调),当我们把某个函数作为参数传递给另一个函数的时候,这个函数就是回调函数 回调函数的基本写...

  • go 基本函数

    多返回值函数 递归 函数类型 type 回调函数 和多态(强大) 匿名函数 与 闭包 关键字defer(defer...

  • javascript高级-

    函数类型中,比较常用的是匿名函数和回调函数,一般来说,回调函数是以匿名函数的形式来进行表现的。回调函数在事件监听,...

网友评论

    本文标题:函数08(递归、回调函数、函数中的展开语法)

    本文链接:https://www.haomeiwen.com/subject/hesswhtx.html