Detailed description of arguments objects in Javascript and detailed description of javascript
In the previous article, we discussed the default parameters in javascript. In this article, we will discuss the arguments parameter objects in javascript.
In the following example, how do we handle different functions based on different input parameters?
Copy codeThe Code is as follows:
Function addAll (){
// What do we do here?
}
// Shocould return 6
AddAll (1, 2, 3 );
// Shocould return 10
AddAll (1, 2, 3, 4 );
Fortunately, javascript has an arguments object that can handle the above situation. The arguments object is a class array object. To learn more about the arguments object, click here. We use the arguments object to change the previous example:
Copy codeThe Code is as follows:
Function addAll (){
Var sum = 0;
For (var I = 0; I <arguments. length; I ++ ){
Sum + = arguments [I];
}
Return sum;
}
// Returns 6
AddAll (1, 2, 3 );
// Returns 10
AddAll (1, 2, 3, 4 );
As mentioned above, the arguments object is a class array object. Let's test it below:
Copy codeThe Code is as follows:
Function getName (){
Console. log (Array. isArray (arguments ));
}
// Will output false
GetName ("benjamin ");
The test results show that:
It is not an array object. What is the difference between it and an array object? Click here for details.
The following example will throw an error:
Copy codeThe Code is as follows:
Function sortArgs (){
// Uncaught TypeError: undefined is not a function
Sorted = arguments. sort ()
Return sorted;
}
SortArgs ();
We can convert a class array object to an array object as follows:
Copy codeThe Code is as follows:
Function sortArgs (){
// Convert arguments object into a real array
Var args = []. slice. call (arguments );
// Now this will work!
Sorted = args. sort ()
Return sorted;
}
// Will output [1, 2, 3]
Console. log (sortArgs (1, 3, 2 ));
If you feel this article is helpful to you and want to transfer it to more people in need. If the article is inappropriate, please leave a message.
What is the arguments object in JS?
Refer to my js notes
In the function body, the identifier arguments is a reference to the real parameter object, and the real parameter object is a class array object arguments [0], arguments. length
What is arguments?
Answer: 1: arguments is a copy of the received arguments.
In lexical analysis, the attributes of AO are first formed based on the form parameters. The value is undefined.
When real parameters are passed, modify the corresponding attributes of AO.
2: Collect all received arguments and put them in an arguments object.
T (a, B, c ){},
Call time: t (1, 2, 3, 4, 5) 5 parameters
At this time, the AO attribute only has three attributes: a, bc, and arguments, which have values of 1, 2, 3, 4, and 5.
You can use arguments to obtain arguments that exceed the number of parameters.
3: The arguments index increments from 0, 1, 2,..., and corresponds to the real parameters one by one.
4: The arguments. length attribute indicates the number of real parameters.
5: arguments must not be an array. It is a long object like an array, although it also has the length attribute.
6: each function of arguments will have it. Therefore, arguemets will only find its own arguments internally,
The arguments of the outer layer cannot be referenced.
<Script type = "text/javascript">
// Calculate the circular area, rectangular area, and triangular area.
Function area (){
If (arguments. length = 1 ){
Alert (3.14 * arguments [0] * arguments [0]);
} Else if (arguments. length = 2 ){
Alert (arguments [0] * arguments [1]);
} Else if (arguments. length = 3 ){
Alert (arguments [0] + arguments [1] + arguments [2]);
} Else {
Return null;
}
}
Area (10, 20, 30 );
</Script>
Problems with arguments in Javascript Functions
Arguments is a pseudo array. The for in traversal object may be different in different browsers. Therefore, it is better to use the traditional