JSarguments对象

    xiaoxiao2025-12-07  3

    最近开始学习JS, 因为东西太多,而且比较繁琐。所以把自己的学习心得记录在这里,可以加深一下印象。

    今天接触到了JS的arguments对象。查阅了一些资料,现在总结一下。

    arguments对象是JS的内置对象,不能显式的进行创建。是Array-like(类似于数组)对象,是函数的参数组成的对象。可以通过数组形式访问arguments对象的值。

    arguments[0],arguments[1],...

    也可以通过这种形式为arguments赋值,

    arguments[0] = 'arg0';arguments[1] = 'arg1';...

    arguments 对象类似于数组,但不是数组,arguments只有一个数组的属性--length;

    arguments.length 表示函数参数的长度, 及参数的个数。

    arguments可以转化成数组(三种方式):

    var args = Array.prototype.slice.call(arguments);    //对象冒充

    var args = Array.from(arguments);                         //Array.from方法

    var arguments = [...arguments];        //spread syntax , 详情请见https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_operator

    既然讲到了函数参数, 我们就来研究一下函数的参数形式。

    Javascript中函数参数分为显式参数跟隐式参数。显式参数在函数定义式列出。例如

    functionName (parameter1,parameter2, parameter3) {

      //代码块

    }     //当中的parameter1,parameter2, parameter3  即为显式参数

    而隐式参数(arguments)是在函数调用是传递给函数的真正的值。

    函数在调用时如果缺少参数,参数会默认设置为:undefined.

    如果函数调用时设置了过多的参数,参数将无法被引用,因为无法找到对应的参数名。只能使用 arguments 对象来调用。

    既然arguments是函数参数组成的类似于数组的对象,那么我们当然通过arguments来获取函数的参数。

    x = findMax(1, 123, 500, 115, 44, 88); function findMax() {     var i, max = 0;     for (i = 0; i < arguments.length; i++) {         if (arguments[i] > max) {             max = arguments[i];         }     }     return max;

    }

    arguments常用的属性:

    1.arguments.callee     Reference to the currently executing function

    2.arguments.length    Reference to the number of arguments passed to the function

    举一个例子,来自MDN

    function myConcat(separator) {   var args = Array.prototype.slice.call(arguments, 1);        //这里的参数1,表示从arguments[1]开始取值   return args.join(separator); }

    // returns "...., orange, blue" myConcat(", ", "....", "orange", "blue"); // returns "elephant; giraffe; lion; cheetah" myConcat("; ", "elephant", "giraffe", "lion", "cheetah"); // returns "sage. basil. oregano. pepper. parsley" myConcat(". ", "sage", "basil", "oregano", "pepper", "parsley");

    到这里,对arguments对象应该有一个初步的了解了。

    在写的第一篇日志,棒棒哒,给自己鼓个掌。

    转载请注明原文地址: https://ju.6miu.com/read-1304689.html
    最新回复(0)