Bird
Raised Fist0
Javascriptprogramming~5 mins

Logical operators in Javascript - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: Logical operators
O(n)
Understanding Time Complexity

Logical operators combine true or false values to make decisions in code.

We want to see how the time to run code changes when using these operators.

Scenario Under Consideration

Analyze the time complexity of the following code snippet.


function checkValues(arr) {
  for (let i = 0; i < arr.length; i++) {
    if (arr[i] && arr[i].isActive) {
      console.log('Active item found');
    }
  }
}
    

This code checks each item in an array to see if it exists and is active.

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: Looping through each element of the array.
  • How many times: Once for every item in the array.
How Execution Grows With Input

As the array gets bigger, the code checks more items one by one.

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

Pattern observation: The number of checks grows directly with the number of items.

Final Time Complexity

Time Complexity: O(n)

This means the time to run grows in a straight line as the input size grows.

Common Mistake

[X] Wrong: "Logical operators make the code run faster because they skip some checks."

[OK] Correct: Logical operators do short-circuit, but the loop still runs once per item, so time grows with input size.

Interview Connect

Understanding how logical operators affect loops helps you explain code efficiency clearly and confidently.

Self-Check

"What if we replaced the loop with a recursive function? How would the time complexity change?"

Practice

(1/5)
1. Which logical operator in JavaScript returns true only if both conditions are true?
easy
A. ! (NOT)
B. || (OR)
C. && (AND)
D. ? (Ternary)

Solution

  1. Step 1: Understand AND operator behavior

    The AND operator (&&) returns true only when both conditions it connects are true.
  2. Step 2: Compare with other operators

    The OR operator (||) returns true if at least one condition is true, NOT (!) flips true/false, and ? is a ternary operator, not a logical operator.
  3. Final Answer:

    && (AND) -> Option C
  4. Quick Check:

    AND = && [OK]
Hint: AND needs both true, so look for && [OK]
Common Mistakes:
  • Confusing OR (||) with AND (&&)
  • Thinking NOT (!) combines conditions
  • Mixing ternary operator with logical operators
2. Which of the following is the correct syntax to negate a boolean variable isActive in JavaScript?
easy
A. not isActive
B. !isActive
C. isActive!
D. isActive.not()

Solution

  1. Step 1: Recall NOT operator syntax

    In JavaScript, the NOT operator is a single exclamation mark (!) placed before the variable to flip its boolean value.
  2. Step 2: Check each option

    !isActive is the correct syntax. Options A, C, and D are invalid syntax in JavaScript.
  3. Final Answer:

    !isActive -> Option B
  4. Quick Check:

    NOT = ! before variable [OK]
Hint: Use ! before variable to negate boolean [OK]
Common Mistakes:
  • Writing not instead of !
  • Placing ! after variable
  • Using method calls like .not()
3. What is the output of this code?
const a = true;
const b = false;
console.log(a || b && !b);
medium
A. true
B. undefined
C. false
D. SyntaxError

Solution

  1. Step 1: Evaluate NOT operator first

    !b means !false which is true.
  2. Step 2: Evaluate AND operator next

    b && !b is false && true which is false.
  3. Step 3: Evaluate OR operator last

    a || (result of AND) is true || false which is true.
  4. Final Answer:

    true -> Option A
  5. Quick Check:

    Operator precedence: ! > && > || = true [OK]
Hint: Remember ! before && before || precedence [OK]
Common Mistakes:
  • Ignoring operator precedence
  • Evaluating OR before AND
  • Misunderstanding ! operator
4. Find the error in this code snippet:
let x = true;
if (x && !x) {
console.log('Yes');
} else {
console.log('No');
}
medium
A. The condition x && !x is always false
B. Missing semicolon after if statement
C. Cannot use ! operator on boolean
D. Console.log syntax is wrong

Solution

  1. Step 1: Analyze the condition x && !x

    x is true, !x is false, so true && false is always false.
  2. Step 2: Understand effect on code flow

    Since condition is always false, 'Yes' will never print, only 'No' will print.
  3. Final Answer:

    The condition x && !x is always false -> Option A
  4. Quick Check:

    Contradictory condition = always false [OK]
Hint: Check if condition can ever be true [OK]
Common Mistakes:
  • Thinking !x is invalid on boolean
  • Expecting 'Yes' to print
  • Confusing syntax errors with logic errors
5. You want to check if a user is logged in and has admin rights before showing admin panel. Which condition correctly uses logical operators?
const loggedIn = true;
const isAdmin = false;
// Choose the correct condition to show admin panel
hard
A. if (loggedIn || isAdmin) { showAdminPanel(); }
B. if (!loggedIn || !isAdmin) { showAdminPanel(); }
C. if (!loggedIn && isAdmin) { showAdminPanel(); }
D. if (loggedIn && isAdmin) { showAdminPanel(); }

Solution

  1. Step 1: Understand requirement

    Both loggedIn and isAdmin must be true to show admin panel.
  2. Step 2: Check each condition

    The condition with || (OR) is true if at least one is true. The condition with !loggedIn || !isAdmin is true unless both are true. The condition with !loggedIn && isAdmin is true only if not logged in and is admin. The condition with && (AND) requires both true.
  3. Final Answer:

    if (loggedIn && isAdmin) { showAdminPanel(); } -> Option D
  4. Quick Check:

    Both true needed = use AND (&&) [OK]
Hint: Use && when all conditions must be true [OK]
Common Mistakes:
  • Using OR (||) when both conditions are required
  • Negating conditions incorrectly
  • Confusing logic for access control
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