A function expression lets you create a function and save it in a variable. This helps you use the function later or pass it around like any other value.
When you want to store a function in a variable to use later.
When you want to pass a function as an argument to another function.
When you want to create a function without giving it a name (anonymous function).
When you want to write shorter code inside another function or event handler.
When you want to create functions dynamically during program execution.
Syntax
Javascript
const variableName = function(parameters) {
// code to run
};
The function can be anonymous (no name) or named.
The function expression ends with a semicolon because it is an assignment.
Examples
This creates a function that prints 'Hello!' and stores it in the variable greet.
Function expressions are not hoisted like function declarations, so you must define them before using.
You can use function expressions to create closures and keep data private.
Summary
Function expressions store functions in variables for flexible use.
They can be anonymous or named.
Use them when you want to pass functions around or create functions dynamically.
Practice
(1/5)
1. What is a function expression in JavaScript?
easy
A. A function that runs automatically when the page loads
B. A way to store a function inside a variable
C. A function declared with the function keyword only
D. A special type of loop
Solution
Step 1: Understand function expressions
A function expression means assigning a function to a variable so it can be used later.
Step 2: Compare options
Only A way to store a function inside a variable describes storing a function inside a variable, which matches the definition of a function expression.
Final Answer:
A way to store a function inside a variable -> Option B
Quick Check:
Function expression = function stored in variable [OK]
Hint: Function expressions assign functions to variables [OK]
Common Mistakes:
Confusing function expressions with function declarations
Thinking function expressions run automatically
Mixing up functions with loops
2. Which of the following is the correct syntax for a function expression?
easy
A. var myFunc = function() { return 5
B. function myFunc() { return 5; }
C. let myFunc = function myFunc() { return 5
D. const myFunc = function() { return 5; };
Solution
Step 1: Identify function expression syntax
A function expression assigns an anonymous function to a variable using = function() { ... }.
Step 2: Check options for correct syntax
const myFunc = function() { return 5; }; uses const with an anonymous function and ends with a semicolon, which is correct syntax.
The variable greet holds a function that returns a greeting string with the given name.
Step 2: Evaluate the function call
Calling greet('Alice') returns Hello, Alice! which is printed by console.log.
Final Answer:
Hello, Alice! -> Option C
Quick Check:
Function call with 'Alice' returns greeting [OK]
Hint: Function expressions return values like normal functions [OK]
Common Mistakes:
Confusing variable name with parameter
Expecting function name in output
Thinking function expression causes error
4. Find the error in this function expression:
const add = function(a, b) {
return a + b
};
console.log(add(2, 3));
medium
A. No error, code runs correctly
B. Function expression must have a name
C. Cannot use const with function expressions
D. Missing semicolon after return statement
Solution
Step 1: Check syntax of function expression
The function is assigned to add using const, which is valid. The return statement is correct without semicolon (optional in JS).
Step 2: Verify code execution
Calling add(2, 3) returns 5 and prints it. No syntax or runtime errors occur.
Final Answer:
No error, code runs correctly -> Option A
Quick Check:
Valid function expression runs without error [OK]
Hint: Semicolons after return are optional in JavaScript [OK]
Common Mistakes:
Thinking function expressions must be named
Believing semicolon is mandatory after return
Assuming const cannot hold functions
5. You want to create a function expression that doubles a number and then immediately call it with 4. Which code does this correctly?
hard
A. const double = function(n) { return n * 2; }(4); console.log(double);
B. function(n) { return n * 2; }(4);
C. const double = (n) => n * 2; double(4);
D. const double = function(n) { return n * 2; }; double(4);
Solution
Step 1: Understand immediate function call with expression
To call a function expression immediately, you add parentheses after the function definition.
Step 2: Analyze options
const double = function(n) { return n * 2; }(4); console.log(double); defines a function expression and immediately calls it with (4), assigning the result to double. Then it logs the result. This matches the requirement.
Final Answer:
const double = function(n) { return n * 2; }(4); console.log(double); -> Option A
Quick Check:
Function expression called immediately with (4) [OK]
Hint: Add (args) right after function expression to call immediately [OK]
Common Mistakes:
Not calling the function immediately
Assigning function instead of result
Using arrow function without immediate call
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.