Quick Answer
Different function patterns in JavaScript.
Understanding the Issue
JavaScript functions are first-class objects with several declaration styles.
The Problem
This code demonstrates the issue:
Javascript
Error
// Need to implement functionality
The Solution
Here's the corrected code:
Javascript
Fixed
// Function declaration (hoisted)
function add(a, b) {
return a + b;
}
// Function expression
const multiply = function(a, b) {
return a * b;
};
// Arrow function (ES6)
const divide = (a, b) => a / b;
// Default parameters
function greet(name = "Guest") {
return `Hello ${name}`;
}
// Rest parameters
function sum(...numbers) {
return numbers.reduce((total, num) => total + num, 0);
}
Key Takeaways
Use arrow functions for conciseness and declarations for hoisting.