The content of this article is about how to use the arguments object in JavaScript? (Usage introduction), it has certain reference value. Friends in need can refer to it. I hope it will be helpful to you.
arguments is an array-like object that corresponds to the arguments passed to the function.
Syntax
arguments
Description
arguments objects are local variables available in all functions. You can use the arguments object to reference a function's arguments within a function. This object contains an entry for each parameter passed to the function, with the index of the first entry starting at 0. For example, if a function is passed three arguments, you can refer to them as follows:
arguments[0] arguments[1] arguments[2]
Parameters can also be set:
arguments[1] = 'new value';
The arguments object is not an Array . It is similar to an array, but does not have any array properties except length. For example, it doesn't have a pop method. But it can be converted to a real array::
let args = Array.prototype.slice.call(arguments); let args = [].slice.call(arguments);
You can also use the Array.from() method or spread operator to convert arguments to a real array:
let args = Array.from(arguments); let args = [...arguments];
Pair parameters Using slices will prevent optimizations in some JavaScript engines (such as the V8 engine).
If you care about them, try constructing a new array by looping over the arguments object.
Another approach is to use the ignored/despised/disdained,/despised Array constructor as a function:
let args = ( arguments.length === 1 ? [arguments[0]] : Array.apply(null, arguments) );
If Array generics are available, the following code can be used as an alternative
var args = Array.slice(arguments);
The arguments object is only valid inside the function. Calling the arguments object outside the function will cause an error.
typeof of arguments returns 'object'.
console.log(typeof arguments); // 'object'
You can use the index to determine the type of each argument.
console.log(typeof arguments[0]); //这将返回单个参数的typeof。
If you call a function with more arguments than it explicitly declares, you can use the arguments object. This technique is useful for functions with a variable number of parameters. You can use arguments.length to get the number of arguments, and then use the arguments object to process each argument. (To get the number of parameters for a function signature, use the Function.length property.)
Properties
arguments.callee // 指向当前执行的函数。 arguments.caller // 指向调用当前函数的函数。 arguments.length // 指向传递给当前函数的参数数量。
Example
Define a function to concatenate several strings
This example defines a function to concatenate strings. The only officially declared argument to this function is a string, which specifies a character as the join point to concatenate the strings. The function is defined as follows:
function myConcat(separator) { var args = Array.prototype.slice.call(arguments, 1); return args.join(separator); }
You can pass any number of arguments to this function, and the function will create a list with each argument as an entry.
myConcat(", ", "red", "orange", "blue"); // returns "red, orange, blue" myConcat("; ", "elephant", "giraffe", "lion", "cheetah"); // returns "elephant; giraffe; lion; cheetah" myConcat(". ", "sage", "basil", "oregano", "pepper", "parsley"); // returns "sage. basil. oregano. pepper. parsley"
Define a method to create an HTML list
This example defines a function to create an HTML list from a string. The only officially declared argument to this function is a character. When the argument is "u", an unordered list (a list of items) is created; when the argument is "o", an ordered list (a numbered list) is created. The function is defined as follows:
function list(type) { var result = "<" + type + "l><li>"; var args = Array.prototype.slice.call(arguments, 1); result += args.join("</li><li>"); result += "</li></" + type + "l>"; // end list return result; }
You can pass any number of arguments to this function, and the function will add each argument as an entry to a list of the type specified by the first argument.
var listHTML = list("u", "One", "Two", "Three"); /* listHTML is: "<ul><li>One</li><li>Two</li><li>Three</li></ul>" */
Note
arrow functions in ES6 do not have their own arguments
objects, but in most cases, rest
The parameter can give a solution:
let a; const fn = (...rest) => Array.prototype.slice.call(rest, 1); a = fn(1, 2); // [2]
The above is the detailed content of How to use arguments object in JavaScript? (Usage introduction). For more information, please follow other related articles on the PHP Chinese website!