JS函数arguments数组获得实际传参数个数

JS与PHP在函数传参方面有点不同,PHP形参与实参个数要匹配,而JS就灵活多了,可以随意传参,实参比形参少或多都不会报错。

实参比形参多不会报错

?


1

2

3

4

5

function say(a){

   alert(a);

}

say(‘琼台博客‘,‘WEB技术博客‘);

执行结果

我们再来看看形参比实参多的结果

?


1

2

3

4

5

function say(a,b){

   alert(‘a 的值是 ‘+a+‘\nb 的值是 ‘+b);

}

say(‘琼台博客‘);

执行结果

a 对应第一个实参“琼台博客”,b 没有对应的实参所以值为undefined

arguments对象

其实有时候我们在程序设计比较复杂的时候并不指定参数个数,都是灵活运用。在函数里有一个数组arguments就是专门存储实参数组的,通过arguments我们就可以知道实参个数以及值。

?


1

2

3

4

5

6

7

8

function arg(){

    var str = ‘总共传了‘+arguments.length+‘个参数\n‘;

    for(var i=0;i<arguments.length;i++){   

        str += ‘第‘+(i+1)+‘个参数值:‘+arguments[i]+‘\n‘;

    }

    alert(str);

}

arg(‘琼台博客‘,‘PHP博客‘,‘WEB技术博客‘);

执行结果

在以上例子中,我们定义函数arg并没有给它指定形参,而是使用arguments对象接收实参,非常灵活。

比如我们可以利用它来计算出一组数字里最小的数字,不管这组数字有多少个。如以下代码:

?


1

2

3

4

5

6

7

8

9

10

11

12

13

function arg(){

    var tmp = 0, str = ‘在 ‘;

    for(var i=0;i<arguments.length;i++){   

        for(var g=0;g<arguments.length;g++){

            if(arguments[g]<arguments[i]){

               tmp = arguments[g];

            }

        }

       str += arguments[i]+‘,‘;

    }

    alert(str.substr(0,str.length-1)+‘ 里最小的值是 ‘+tmp);

}

arg(200,100,59,3500);

执行 200,100,59,3500  四个数对比结果

我们在加入两个数,分别是 5 和 60

?


1

2

3

4

5

6

7

8

9

10

11

12

13

function arg(){

    var tmp = 0, str = ‘在 ‘;

    for(var i=0;i<arguments.length;i++){   

        for(var g=0;g<arguments.length;g++){

            if(arguments[g]<arguments[i]){

               tmp = arguments[g];

            }

        }

       str += arguments[i]+‘,‘;

    }

    alert(str.substr(0,str.length-1)+‘ 里最小的值是 ‘+tmp);

}

arg(200,100,59,3500,5,60);

执行 200,100,59,3500,5,60 六个数对比结果

根据两次运算结果,我们发现无论我们传进多少个数字,都能正确比对结果。arguments一般用在实参个数不定的地方,比如上边的例子,你可以传5个数进去比较,也可以传100个数进去比较都可以。

时间: 2024-08-30 03:39:03

JS函数arguments数组获得实际传参数个数的相关文章

JS函数,数组,日期

函数是JS的一个重点,函数就是代码复用的一种机制或是将代码封装成功能的代码段,函数一共有两种定义方式函数声明的方式定义一个函数function + 函数名:一般用单词的动词,例如getMax... +参数列表:此处一般是形参也可以是一个函数){函数体:可执行的代码函数后面可以有一个return;(return后面加上需要返回的值,如果没有写return或者return后面没有写返回值,那么函数最后返回undefined,当没有return的时候,函数只是为了执行代码,return语句下面不要加代

js函数arguments与获取css样式方法

函数传参,当参数的个数不定时,可以使用arguments arguments.length=实参个数 获得css样式方法: getComputedStyle()方法---->得到的是计算机计算后的样式(多次修改之后的最终样式),IE 6 7 8下兼容 style.属性   ----->操作的是元素内嵌样式,得到是内嵌样式的属性 currentStyle ----->标准浏览器不兼容 注意: 不能获取复合样式.例如 :backgroud:url() color .... 单一样式不要用来做

JS如何从数组中随机取出若干个数,且不重复

//原数组 var arr = [0,1,2,3,4,5,6,7,8,9,10,11]; //输出数组 var out = []; //输出个数 var num = 5; while(out.length < num){     var temp = (Math.random()*arr.length) >> 0;     out.push(arr.splice(temp,1)); } alert(out);

输入整数n(n&lt;=10000),表示接下来将会输入n个实数,将这n个实数存入数组a中。请定义一个数组拷贝函数将数组a中的n个数拷贝到数组b中。

代码一大串! #include<stdio.h> double x[10000],y[10000]; void arraycopy (double c[],double d[],int m); { for(int i=1;i<=m;i++) b[i]=a[i]; } int main() { int i,o; scanf("%d",&o); for(i=1;i<=m;i++) scanf("%lf",&x[i]); array

js 函数参数 arguments[0]

function box() {            return arguments[0] + '|' + arguments[1];                    }        alert(box(1, 2, 3, 4, 5, 6)); 输出:1|2 说明:1 ECMAScript 函数不介意传递进来多少参数,也不会因为参数不统一而错误.实际上,函数体内可以通过 arguments 对象来接收传递进来的参数.    2 arguments 对象的 length 属性可以得到参数

JS函数的参数对象arguments在严格模式下的限制

在JS中,传入的函数的参数个数可以与定义函数的个数不一致,那么对于传入的实参的引用,则是arguments对象.然而改对象在严格模式和非严格模式下是由区分的: 1 在严格模式下arguments作为了一个保留字,那么如果在定义arguments相关的变量和函数,则会报语法错误. 2 arguments在严格模式下属于传入的实参对象,并且是不可变的,即不可在函数内部通过arguments来修改实参值. 如: function test1(a){ “use strict”; arguments[0]

js数组作为参数用ajax向后台传参数

1 /*前台往后台传参数时,可以这样写*/ 2 var chessId = "123"; 3 var i=0; 4 5 var data = []; 6 7 /*添加单个参数*/ 8 data.push({name:"type",value:"分配"}); 9 data.push({name:"id",value:chessId}); 10 11 /*循环添加集合参数对象*/ 12 data.push({name:"

js基础之函数递传参数与作用域(5下)

上一章节面试题分析: 第一步:浏览器预解析这段JS代码,找var function和参数: 第二步:逐行解读代码: 下面是具体步骤分析:

JavaScript (JS) 函数补充 (含arguments、eval()、四种调用模式)

1. 程序异常 ① try-catch语法    测试异常 try-catch语法代码如下: try { 异常代码;     try中可以承重异常代码, console.log("try")  出现异常代码后,正确代码不会执行 } catch (e) { console.log("e:"+e);  try中出现异常在e中展现出来 console.log("catch");  只有try中出现异常才执行这段代码 } finally { consol