JavaScript Function Parameters and Arguments
JavaScript functions can accept parameters (also known as formal parameters) to receive input values when they are called. These input values are called arguments. In this guide, we'll explore how to work with function parameters and arguments and provide examples to illustrate each concept.
Defining Functions with Parameters
You can define a function with parameters by specifying them within the function's parentheses:
function greet(name) {
console.log("Hello, " + name + "!");
}
function add(a, b) {
return a + b;
}
Passing Arguments to Functions
When you call a function, you pass arguments as values to the corresponding parameters:
greet("Alice"); // "Alice" is the argument for the "name" parameter
const result = add(5, 3); // 5 and 3 are the arguments for the "a" and "b" parameters
Default Parameters
You can provide default values for function parameters, which are used when the arguments are not provided:
function greetDefault(name = "Guest") {
console.log("Hello, " + name + "!");
}
greetDefault(); // Uses the default "Guest"
greetDefault("Bob"); // Uses the provided "Bob"
Rest Parameters
Rest parameters allow a function to accept a variable number of arguments as an array:
function sum(...numbers) {
let total = 0;
for (let num of numbers) {
total += num;
}
return total;
}
const result = sum(1, 2, 3, 4, 5); // Accepts any number of arguments
Arguments Object (Legacy)
In legacy JavaScript, you can use the arguments
object to access all arguments passed to a function, even if they are not explicitly defined as parameters:
function legacyFunction() {
for (let i = 0; i < arguments.length; i++) {
console.log("Argument " + i + ": " + arguments[i]);
}
}
legacyFunction(1, "apple", true); // Outputs all arguments
Conclusion
Understanding function parameters and arguments is essential for building flexible and reusable functions in JavaScript. Whether you're defining functions with parameters, using default values, or working with rest parameters, these concepts empower you to create versatile functions for various use cases.
Happy coding!