Bird
Raised Fist0
Javascriptprogramming~10 mins

Ternary operator in Javascript - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Ternary operator
Evaluate condition
Yes/No↓
True
↓
Return true_value
↓
End
The ternary operator checks a condition and returns one value if true, another if false.
Execution Sample
Javascript
const age = 18;
const canVote = age >= 18 ? 'Yes' : 'No';
console.log(canVote);
This code checks if age is 18 or more and sets canVote to 'Yes' or 'No' accordingly.
Execution Table
StepCondition (age >= 18)ResultValue assigned to canVoteOutput
118 >= 18true'Yes'No output yet
2N/AN/AN/APrint 'Yes'
💡 Condition true, so 'Yes' assigned and printed.
Variable Tracker
VariableStartAfter Step 1Final
ageundefined1818
canVoteundefined'Yes''Yes'
Key Moments - 2 Insights
Why does the ternary operator return 'Yes' when age is 18?
Because the condition age >= 18 is true at step 1 in the execution table, so the true value 'Yes' is assigned.
What happens if the condition is false?
If the condition is false, the ternary operator assigns the false value (here 'No'), as shown in the concept flow diagram.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the value of canVote after step 1?
Aundefined
B'No'
C'Yes'
Dnull
💡 Hint
Check the 'Value assigned to canVote' column in row for step 1.
At which step is the output printed to the console?
AStep 2
BBefore step 1
CStep 1
DNo output is printed
💡 Hint
Look at the 'Output' column in the execution table.
If age was 16, what would be the value assigned to canVote at step 1?
A'Yes'
B'No'
Cundefined
DError
💡 Hint
Refer to the concept flow and how false condition returns the false value.
Concept Snapshot
Syntax: condition ? true_value : false_value
Evaluates condition first.
Returns true_value if condition is true.
Returns false_value if condition is false.
Used for quick if-else assignments.
Full Transcript
The ternary operator in JavaScript evaluates a condition and returns one of two values depending on whether the condition is true or false. In the example, age is checked if it is 18 or more. Since age is 18, the condition is true, so 'Yes' is assigned to canVote. Then 'Yes' is printed. If the condition were false, 'No' would be assigned instead. This operator is a shortcut for simple if-else statements.

Practice

(1/5)
1. What does the ternary operator condition ? expr1 : expr2 do in JavaScript?
easy
A. Executes both expr1 and expr2 and returns their sum.
B. Always returns expr2 regardless of the condition.
C. Throws an error if condition is false.
D. Returns expr1 if condition is true, otherwise returns expr2.

Solution

  1. Step 1: Understand the ternary operator structure

    The ternary operator has the form condition ? expr1 : expr2. It checks the condition.
  2. Step 2: Determine the returned value based on the condition

    If the condition is true, it returns expr1. Otherwise, it returns expr2.
  3. Final Answer:

    Returns expr1 if condition is true, else expr2 -> Option D
  4. Quick Check:

    condition ? expr1 : expr2 = expr1 or expr2 [OK]
Hint: Remember: condition ? trueValue : falseValue [OK]
Common Mistakes:
  • Thinking both expressions run always
  • Confusing the order of expr1 and expr2
  • Assuming it throws error on false condition
2. Which of the following is the correct syntax for using the ternary operator in JavaScript?
easy
A. condition ? expr1 : expr2;
B. condition ? expr1, expr2;
C. condition : expr1 ? expr2;
D. condition ? (expr1 : expr2);

Solution

  1. Step 1: Recall the ternary operator syntax

    The correct syntax is condition ? expr1 : expr2 with a question mark and colon separating parts.
  2. Step 2: Check each option for correct punctuation

    condition ? expr1 : expr2; matches the correct syntax. Options B, C, and D misuse commas, colons, or parentheses.
  3. Final Answer:

    condition ? expr1 : expr2; -> Option A
  4. Quick Check:

    Syntax is condition ? expr1 : expr2 [OK]
Hint: Look for ? and : in correct order with no extra symbols [OK]
Common Mistakes:
  • Using commas instead of colon
  • Swapping ? and :
  • Adding unnecessary parentheses
3. What is the output of this code?
const age = 20;
const canVote = age >= 18 ? 'Yes' : 'No';
console.log(canVote);
medium
A. 'No'
B. 'Yes'
C. true
D. undefined

Solution

  1. Step 1: Evaluate the condition age >= 18

    Since age is 20, which is greater than or equal to 18, the condition is true.
  2. Step 2: Determine the value assigned to canVote

    Because the condition is true, canVote is assigned the string 'Yes'.
  3. Final Answer:

    'Yes' -> Option B
  4. Quick Check:

    20 >= 18 ? 'Yes' : 'No' = 'Yes' [OK]
Hint: Check condition result true or false to pick value [OK]
Common Mistakes:
  • Confusing true and false branches
  • Thinking it returns boolean true/false
  • Ignoring the condition value
4. Find the error in this code snippet:
let score = 85;
let grade = score > 90 ? 'A' : score > 80 ? 'B' : 'C';
console.log(grade);
medium
A. The code is correct and will output 'B'.
B. Incorrect use of multiple ternary operators is not allowed.
C. Missing parentheses around nested ternary expressions.
D. The variable grade is not declared properly.

Solution

  1. Step 1: Analyze the nested ternary expression

    The expression uses nested ternary operators without parentheses, which is allowed in JavaScript.
  2. Step 2: Evaluate the condition with score = 85

    First condition score > 90 is false, so it checks score > 80, which is true, so grade is 'B'.
  3. Final Answer:

    The code is correct and will output 'B'. -> Option A
  4. Quick Check:

    Nested ternary without parentheses works [OK]
Hint: Nested ternary operators can be used without parentheses [OK]
Common Mistakes:
  • Assuming nested ternary needs parentheses
  • Thinking multiple ternaries are invalid syntax
  • Confusing variable declaration errors
5. You want to assign a variable status based on a number score: if score is 0 or less, status should be 'Fail'; if between 1 and 50, 'Pass'; otherwise 'Excellent'. Which ternary expression correctly does this?
hard
A. const status = score <= 0 ? 'Fail' : (score > 50 ? 'Pass' : 'Excellent');
B. const status = score < 0 ? 'Fail' : score < 50 ? 'Pass' : 'Excellent';
C. const status = score <= 0 ? 'Fail' : score <= 50 ? 'Pass' : 'Excellent';
D. const status = score === 0 ? 'Fail' : score < 50 ? 'Pass' : 'Excellent';

Solution

  1. Step 1: Understand the conditions for status

    score <= 0 means 'Fail', between 1 and 50 means 'Pass', and above 50 means 'Excellent'.
  2. Step 2: Check each option against these conditions

    const status = score <= 0 ? 'Fail' : score <= 50 ? 'Pass' : 'Excellent'; correctly checks score <= 0 for 'Fail', then score <= 50 for 'Pass', else 'Excellent'. Others have wrong ranges or conditions.
  3. Final Answer:

    const status = score <= 0 ? 'Fail' : score <= 50 ? 'Pass' : 'Excellent'; -> Option C
  4. Quick Check:

    Correct ranges and order in ternary [OK]
Hint: Check conditions cover all ranges without gaps [OK]
Common Mistakes:
  • Using wrong comparison operators
  • Missing equal signs causing wrong ranges
  • Incorrect order of conditions
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