Bird
Raised Fist0
Javascriptprogramming~5 mins

Function expression in Javascript - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: Function expression
O(n)
Understanding Time Complexity

Let's see how the time it takes to run a function expression changes as we give it more work.

We want to know how the number of steps grows when the input gets bigger.

Scenario Under Consideration

Analyze the time complexity of the following code snippet.


const sumArray = function(arr) {
  let total = 0;
  for (let i = 0; i < arr.length; i++) {
    total += arr[i];
  }
  return total;
};

const numbers = [1, 2, 3, 4, 5];
console.log(sumArray(numbers));
    

This code defines a function expression that adds up all numbers in an array.

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: The for-loop that goes through each item in the array.
  • How many times: Once for every element in the array.
How Execution Grows With Input

As the array gets bigger, the function does more additions, one for each number.

Input Size (n)Approx. Operations
1010 additions
100100 additions
10001000 additions

Pattern observation: The work grows directly with the number of items; double the items, double the work.

Final Time Complexity

Time Complexity: O(n)

This means the time to finish grows in a straight line with the input size.

Common Mistake

[X] Wrong: "Function expressions always run instantly, so time doesn't grow with input."

[OK] Correct: The way a function is written (expression or declaration) doesn't change how many steps it takes; what matters is what the function does inside.

Interview Connect

Understanding how loops inside functions affect time helps you explain your code clearly and shows you know how to write efficient programs.

Self-Check

"What if we changed the for-loop to a nested loop inside the function? How would the time complexity change?"

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

  1. Step 1: Understand function expressions

    A function expression means assigning a function to a variable so it can be used later.
  2. 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.
  3. Final Answer:

    A way to store a function inside a variable -> Option B
  4. 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

  1. Step 1: Identify function expression syntax

    A function expression assigns an anonymous function to a variable using = function() { ... }.
  2. 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.
  3. Final Answer:

    const myFunc = function() { return 5; }; -> Option D
  4. Quick Check:

    Function expression syntax = variable = function() { } [OK]
Hint: Function expressions assign anonymous functions to variables [OK]
Common Mistakes:
  • Using function declaration syntax instead of expression
  • Missing semicolon at the end
  • Using named function inside expression incorrectly
3. What will be the output of this code?
const greet = function(name) { return `Hello, ${name}!`; };
console.log(greet('Alice'));
medium
A. greet Alice!
B. Hello, name!
C. Hello, Alice!
D. Error: greet is not a function

Solution

  1. Step 1: Understand the function expression

    The variable greet holds a function that returns a greeting string with the given name.
  2. Step 2: Evaluate the function call

    Calling greet('Alice') returns Hello, Alice! which is printed by console.log.
  3. Final Answer:

    Hello, Alice! -> Option C
  4. 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

  1. 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).
  2. Step 2: Verify code execution

    Calling add(2, 3) returns 5 and prints it. No syntax or runtime errors occur.
  3. Final Answer:

    No error, code runs correctly -> Option A
  4. 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

  1. Step 1: Understand immediate function call with expression

    To call a function expression immediately, you add parentheses after the function definition.
  2. 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.
  3. Final Answer:

    const double = function(n) { return n * 2; }(4); console.log(double); -> Option A
  4. 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 unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard