JS Basics: Ternary Operator

A ternary or conditional operator is like an inline if statement. In JavaScript, you can identify them by their unique use of a question mark, ?, and colon, :.

When I first started coding, I found ternary operators more than a little confusing, so let’s try to unpack them. Look at this common example:

className={`Todo ${props.isDone ? 'Todo--done' : ''}`}

Here we have a snippet from a React to-do app with a ternary operator. The class ( className in JSX) is being set based on a condition in our props object. Here’s how to read a ternary operator:

If props.isDone is true/truthy, then return the string “Todo–done”; otherwise return an empty string.

Written out, a ternary operator looks like an if statement. We could express the same code like this:

if (props.isDone === true) {
return 'Todo--done'
} else {
return ''

That looks more familiar! Ternary operators are useful because they allow you to add inline conditions to your code. Compare the original code to our final if statement. The ternary operator is shorter, cleaner, and more efficient.

MDN has a great list of other examples for you to reference. You can check them out here: Conditional (ternary) operators

Happy coding!

About the author

Sean McPherson is a software engineer for Khan Academy who specializes in web and mobile app development. He lives with his wife, sons, and dog in Pittsburgh, PA. (SDG)