Ternary Operator

The Ternary Operator

Also known as the conditional operator, the ternary operator is a handy way to write conditional statements.

ter·na·ry

/ˈtərnərē/
adjective
composed of three parts

The conditional (ternary) operator is the only JavaScript operator that takes three operands. This operator is frequently used as a shortcut for the if statement.

Syntax

condition ? ifExpressionTrue : ifExpressionFalse

The syntax is rather straight forward, albeit a little strange to look at. To use a ternary operator, you need to pass in a condition and if the expression evaluates to true, it returns ifExpressionTrue, otherwise it returns ifExpressionFalse.

Real World Example 🌎

First let's take a look at a traditional if-else statement, then we will refactor the code to use the ternary operator.

Traditional if-else statement

Here's some code for a conditional greeting that gets shown to the user depending on whether or not they are currently logged into our web app. We use an if-else statement to determine if they're logged in, and if so, we return a more personalized greeting to them. If not, we return a generic greeting to them.

const user = { 

    username: "timwheelercom",
    
    isLoggedIn: true
    
}


const greetUser = (user) => {
    
    if (user.isLoggedIn) {

        return `Good Morning, ${user.username}!`;

    } else {

        return "Good Morning!";

    }
}

greetUser(user);

Try this the code snippet in your browser console.

Using the ternary operator

Here get rid of that bloated if-else statement and replace it with a slick, concise ternary operator that will function exactly the same way but is ultimately more readable.

const user = { 

    username: "timwheelercom",
    
    isLoggedIn: true
    
}

const greetUser = (user) => {
    
    return user.isLoggedIn ? `Good Morning, ${user.username}!` : "Good Morning!";
}

greetUser(user);

Try this the code snippet in your browser console.

Wrapping Up ✅

The ternary operator is a great way to tighten up your code and make it more readable for others. Give it a shot and let me know what you think!

Stay Tuned 📺

If you have any questions or improvements, or if you'd like to see additional examples, feel free to reach out to me anytime at tim@timwheeler.com. If you're enjoying my posts, please subscribe below! 👇