- JS Introduction
- JS Introduction
- JS Comments
- JS Variables
- JS Datatypes
- JS Operators
- JS Type Conversions
- JS Control Flow
- JS Comparisons
- JS If else
- JS If else Ladder
- JS Ternary Operator
- JS Switch
- JS For Loop
- JS For In
- JS For Of
- JS While
- JS Do While
- JS Break & Continue
- JS Functions
- JS Function Declaration
- JS Function Parameters
- JS Return Statement
- JS Function Expressions
- JS Anonymous Functions
- JS Objects
- JS Objects
- JS Object Methods
- JS Object Constructors
- JS Object Destructuring
- JS Object Prototypes
- JS Map, Filter & Reduce
- JS ES6
- JS ES6
- JS let and const
- JS Arrow Functions
- JS Template Literals
- Destructuring Assignment
- JS Spread Operator
- JS Default Parameters
- JS Classes
- JS Inheritance
- JS Map
- JS Set
- JS Async
- JS Callbacks
- JS Asynchronous
- JS Promises
- JS Async/Await
- JS HTML DOM/BOM
- JS Document Object
- JS getElementbyId
- getElementsByClassName
- JS getElementsByName
- getElementsByTagName
- JS innerHTML
- JS outerHTML
- JS Window Object
- JS History Object
- JS Navigator Object
- JS Screen Object
JavaScript Function Parameters
- Function parameters are the names listed in the function's definition. They act as placeholders for the data the function will process.
- Think of parameters as local variables that only exist within the scope of that specific function. They receive their actual values (arguments) when the function is executed.
Developer Tip: There is a technical difference between "parameters" and "arguments." Parameters are the variables defined in the function signature, while arguments are the actual values you pass into the function when calling it.
Syntax:
function functionName(parameter1, parameter2, /* ... */) {
// The code inside uses these parameters to perform tasks
}
parameter1, parameter2, ...: These are custom names you choose. Within the curly braces {}, you can use these names just like any other variable to perform calculations, manipulate strings, or logic gates.
Common Mistake: Beginners often try to re-declare a parameter inside the function using
let or const (e.g., let parameter1 = ...). This will cause a syntax error because the parameter name is already declared in that scope.
Why it is Used:
- Dynamic Logic: Parameters allow you to write a single function that behaves differently based on the input it receives.
- Reusability: Instead of writing ten different functions to add different numbers, you write one
add(a, b)function and call it with different arguments. - Clean Code: By passing data through parameters, you avoid relying on "global variables," making your code easier to debug and test.
Example:
In this real-world example, we create a function that calculates the total price of an item including a specific tax rate. This allows the same logic to be used for different products and different tax regions.
// Function Declaration with Parameters
function calculateTotal(price, taxRate) {
const total = price + (price * taxRate);
console.log('The total cost is: $' + total.toFixed(2));
}
// Calling the Function with Arguments
calculateTotal(100, 0.07); // Output: The total cost is: $107.00
calculateTotal(49.99, 0.10); // Output: The total cost is: $54.99
Best Practice: Use descriptive names for your parameters. Instead of
function do(p, t), use function calculateTotal(price, tax). This makes your code "self-documenting," meaning other developers can understand what it does without reading every line.
Default Parameters:
- In modern JavaScript (ES6+), you can assign a default value to a parameter right in the function signature using the
=operator. - If the caller forgets to provide an argument, or passes
undefined, the function will use the default value instead of breaking.
// Function with a default 'role'
function createUser(name, role = 'Guest') {
console.log('User: ' + name + ', Role: ' + role);
}
// Calling the Function
createUser('Alice'); // Output: User: Alice, Role: Guest
createUser('Bob', 'Admin'); // Output: User: Bob, Role: Admin
Watch Out: Default parameters are only used if the argument is
undefined. If you pass null to a function, the default value will NOT be used; the function will treat the value as null.
Rest Parameters:
The rest parameter syntax (...) is incredibly powerful when you don't know how many inputs a user will provide. It collects all remaining arguments into a single array.
// Function using Rest Parameters to handle any number of items
function buildShoppingList(storeName, ...items) {
console.log('Shopping at: ' + storeName);
console.log('Items to buy: ' + items.join(', '));
}
// Calling the Function with varying numbers of arguments
buildShoppingList('GroceryMart', 'Milk', 'Eggs', 'Bread', 'Coffee');
// Output:
// Shopping at: GroceryMart
// Items to buy: Milk, Eggs, Bread, Coffee
Developer Tip: A function can only have one rest parameter, and it must be the last parameter in the list. You cannot do
function(first, ...middle, last).
Summary
- Flexibility: Function parameters turn static code into dynamic tools that handle various data inputs.
- Safety: Default parameters prevent errors by providing fallback values when data is missing.
- Scalability: Rest parameters allow functions to handle lists of data of any size.
- Organization: Passing data through parameters makes your functions "pure" and predictable, which is a cornerstone of professional JavaScript development.