web前端 js学习 第六天 (数组,递归,回调)

数组

  数组:存储同一种数据类型的多个数据

    数组的声明方式:
        直接赋值  [3,2,5]
        实例化对象  new Array(3,2,4)  
        实例化   new Array(10) 声明的是数组的长度

    判断数组的方法  Array.isArray()
    
    
    数组的长度   length
    数组的角标   从0开始的
    
    改变数组长度的方法   
        arr.length = num
        arr[>原有的数组长度时]  加长数组的长度
        
  遍历数组

        for 循环

        for in   遍历的是角标

        for of   遍历的是值
        
数组基本方法1
        基本方法
        push(a,b,c)  向数组后面追加一个或者多个数据
        pop()  从末尾处删除一个数据
        unshift(a,b,c)  向数组前面添加一个或者多个数据
        shift()  向数组前面删除一个数据

递归函数

递归函数:  传递和回归   函数自己调用自己
        循环

    7以内的整数求和 1+2+3+4+5+6+7
    分析:
    7 + sum(6)
    7 + 6 + sum(5) 
    7 + 6 + 5 + sum(4)
    7 + 6 + 5 + 4 + sum(3)
    7 + 6 + 5 + 4 + 3 + sum(2)
    7 + 6 + 5 + 4 + 3 + 2 + sum(1)
                         sum(1) = 1
    代码:
       function sum(n) {
        if(n == 1) return 1
        return n + sum(n - 1)
    }
    document.write(sum(100))
    
    其他例子:
    // 阶乘  1*2*3*4*5*6*7

    function jc(n) {
        if(n == 1) return 1
        return n * jc(n - 1)
    }

    // 斐波拉切数列
    // 0、1、1、2、3、5、8、13、21、34 
    // n = n-1 + n-2

    function fb(n){
        if(n == 2) return 1
        if(n == 1) return 0
        return fb(n - 1) + fb(n - 2)
    }

    // n = 3    fb(2)+fb(1) = 1 + 0 = 1
    console.log(fb(6));

回调函数

 回调函数:函数的参数是一个函数 

function foo(cb) {
    其他代码
    cb();
    其他代码
}
foo(function(){

})
foo(aa)

形参实参

  形参和实参是不对等的
    考虑到可能没有传实参,给形参默认值   短路赋值   或运算的短路赋值
    考虑到可能没有形参,arguments[] 接收实参
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值