What if you could replace bulky if-else blocks with a single, neat line that does the same job?
Why Ternary operator in Javascript? - Purpose & Use Cases
Imagine you want to check if a number is positive or negative and print a message. You write a full if-else block every time, even for simple checks.
This approach makes your code long and harder to read. It's easy to make mistakes or miss small details when repeating the same pattern over and over.
The ternary operator lets you write simple if-else checks in one short line. It keeps your code clean and easy to understand at a glance.
if (score >= 50) { result = 'Pass'; } else { result = 'Fail'; }
result = score >= 50 ? 'Pass' : 'Fail';
You can write quick decisions inside expressions, making your code shorter and clearer without losing meaning.
When showing a user's status, you can quickly display "Online" or "Offline" based on a boolean value using just one line.
Ternary operator replaces simple if-else with a concise expression.
Makes code easier to read and write for quick decisions.
Helps avoid repetitive and bulky if-else blocks.
Practice
condition ? expr1 : expr2 do in JavaScript?Solution
Step 1: Understand the ternary operator structure
The ternary operator has the formcondition ? expr1 : expr2. It checks thecondition.Step 2: Determine the returned value based on the condition
If theconditionis true, it returnsexpr1. Otherwise, it returnsexpr2.Final Answer:
Returns expr1 if condition is true, else expr2 -> Option DQuick Check:
condition ? expr1 : expr2 = expr1 or expr2 [OK]
- Thinking both expressions run always
- Confusing the order of expr1 and expr2
- Assuming it throws error on false condition
Solution
Step 1: Recall the ternary operator syntax
The correct syntax iscondition ? expr1 : expr2with a question mark and colon separating parts.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.Final Answer:
condition ? expr1 : expr2; -> Option AQuick Check:
Syntax is condition ? expr1 : expr2 [OK]
- Using commas instead of colon
- Swapping ? and :
- Adding unnecessary parentheses
const age = 20; const canVote = age >= 18 ? 'Yes' : 'No'; console.log(canVote);
Solution
Step 1: Evaluate the condition
Sinceage >= 18ageis 20, which is greater than or equal to 18, the condition is true.Step 2: Determine the value assigned to
Because the condition is true,canVotecanVoteis assigned the string 'Yes'.Final Answer:
'Yes' -> Option BQuick Check:
20 >= 18 ? 'Yes' : 'No' = 'Yes' [OK]
- Confusing true and false branches
- Thinking it returns boolean true/false
- Ignoring the condition value
let score = 85; let grade = score > 90 ? 'A' : score > 80 ? 'B' : 'C'; console.log(grade);
Solution
Step 1: Analyze the nested ternary expression
The expression uses nested ternary operators without parentheses, which is allowed in JavaScript.Step 2: Evaluate the condition with
First conditionscore = 85score > 90is false, so it checksscore > 80, which is true, sogradeis 'B'.Final Answer:
The code is correct and will output 'B'. -> Option AQuick Check:
Nested ternary without parentheses works [OK]
- Assuming nested ternary needs parentheses
- Thinking multiple ternaries are invalid syntax
- Confusing variable declaration errors
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?Solution
Step 1: Understand the conditions for
statusscore <= 0means 'Fail', between 1 and 50 means 'Pass', and above 50 means 'Excellent'.Step 2: Check each option against these conditions
const status = score <= 0 ? 'Fail' : score <= 50 ? 'Pass' : 'Excellent'; correctly checksscore <= 0for 'Fail', thenscore <= 50for 'Pass', else 'Excellent'. Others have wrong ranges or conditions.Final Answer:
const status = score <= 0 ? 'Fail' : score <= 50 ? 'Pass' : 'Excellent'; -> Option CQuick Check:
Correct ranges and order in ternary [OK]
- Using wrong comparison operators
- Missing equal signs causing wrong ranges
- Incorrect order of conditions
Ready to prove it?
Pass the test and this pattern moves unknown
