Conditional (ternary) operator
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Theconditional (ternary) operator is the only JavaScript operator that takes three operands:a condition followed by a question mark (?), then an expression to execute if the condition istruthy followed by a colon (:), and finally the expression to execute if the condition isfalsy.This operator is frequently used as an alternative to anif...else statement.
In this article
Try it
function getFee(isMember) { return isMember ? "$2.00" : "$10.00";}console.log(getFee(true));// Expected output: "$2.00"console.log(getFee(false));// Expected output: "$10.00"console.log(getFee(null));// Expected output: "$10.00"Syntax
condition ? exprIfTrue : exprIfFalseParameters
conditionAn expression whose value is used as a condition.
exprIfTrueAn expression which is executed if the
conditionevaluates to atruthy value (one which equals or can be converted totrue).exprIfFalseAn expression which is executed if the
conditionisfalsy (that is, has a value which can be converted tofalse).
Description
Besidesfalse, possible falsy expressions are:null,NaN,0, the empty string (""), andundefined.Ifcondition is any of these, the result of the conditional expression will be the result of executing the expressionexprIfFalse.
Examples
>A basic example
const age = 26;const beverage = age >= 21 ? "Beer" : "Juice";console.log(beverage); // "Beer"Handling null values
One common usage is to handle a value that may benull:
const greeting = (person) => { const name = person ? person.name : "stranger"; return `Howdy, ${name}`;};console.log(greeting({ name: "Alice" })); // "Howdy, Alice"console.log(greeting(null)); // "Howdy, stranger"Conditional chains
The ternary operator is right-associative, which means it can be "chained" in the following way, similar to anif … else if … else if … else chain:
function example() { return condition1 ? value1 : condition2 ? value2 : condition3 ? value3 : value4;}This is equivalent to the followingif...else chain.
function example() { if (condition1) { return value1; } else if (condition2) { return value2; } else if (condition3) { return value3; } else { return value4; }}Specifications
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-conditional-operator> |