JavaScript-arguments对象粗解

1、arguments的使用

JavaScript中,arguments对象是比较特别的一个对象,实际上是当前函数的一个内置属性。

也就是说所有函 数都内置了一个arguments对象(是每一个函数里的内置的对象),arguments对象中存储了传递的所有的实参。

arguments是一个伪数组,因此及可以进行 遍历(arguments对象可以进行遍历)。

arguments 是一个对应于传递给函数的参数的类数组对象。

案例:

1.任意个数的一组数中的最大值。

代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        //arguments
        //任意个数中的最大值
        function test(){
            var max=arguments[0];//定义一个最大值
            for(var i=0;i<arguments.length;i++){
                //console.log(arguments[i]);
                if(max<=arguments[i]){
                    max=arguments[i];
                }
            }
            // console.log(arguments.length);
            console.log(max);
        }
        test(12,23,31,40,5,1000,50000,2568);//不管括号内的数值怎么变化,都会选择值最大的那个
    </script>
</body>
</html>

2.求任意个数的和

代码如下:

  function test(){
            // var max=arguments[0];
            var sum=0;
            for(var i=0;i<arguments.length;i++){
                // sum+=i  i代表的仅仅是循环的次数,并不表示循环的次数,即仅仅是sum=sum+8的一个值
                sum+=arguments[i];
                }
                console.log(sum);
            }
           
        
        test(12,23,31,40,5,1000,50000,2568);

for循环的执行顺序,先执行前两个,然后执行循环体,之后再执行i++

3、求斐波那契数列Fibonacci中的第n个数是什么?1 1 2 3 5 8 13 21 34 .....

例:求第25个的数是多少

代码如下:

function test(n){
            var a=1;
            var b=1;
            var sum=0;
            for(var i=3;i<=n;i++){
                sum=a+b;
                a=b;
                b=sum;
            }
            console.log(sum);
        }
        test(25);
        // test(n);需要第多少位,可以直接将n替换为该整数

递归算法 

什么是递归?

递归本质上是将原来的问题,转化为更小的同一问题 ,即 一个函数不断的调用自己。

递归的三要素:

  1. 一个问题的解可以分解为几个更小的同一个题的解
  2. 分解后的子问题只是在数据上存在不一样的问题而已。
  3. 递归存在终止递归条件。

递归算法的实现:以阶乘算法实现。

递归的核心:递和归,往返的一个过程,函数中调用函数。

需要写开始条件和结束条件,如果不写结束,会陷入无尽的循环之中。

例如:盗梦空间中,会陷入梦境为递,醒来为归。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值