Conditional (Ternary) Operator (?:) (JavaScript)

Returns one of two expressions depending on a condition.


test ? expression1 : expression2  


Any Boolean expression.

An expression returned if test is true. May be a comma expression.

An expression returned if test is false. More than one expression may be a linked by a comma expression.


The ?: operator can be used as a shortcut for an if...else statement. It is typically used as part of a larger expression where an if...else statement would be awkward. For example:

var now = new Date();  
var greeting = "Good" + ((now.getHours() > 17) ? " evening." : " day.");  

The example creates a string containing "Good evening." if it is after 6pm. The equivalent code using an if...else statement would look as follows:

var now = new Date();  
var greeting = "Good";  
if (now.getHours() > 17)  
   greeting += " evening.";  
   greeting += " day.";  


Supported in the following document modes: Quirks, Internet Explorer 6 standards, Internet Explorer 7 standards, Internet Explorer 8 standards, Internet Explorer 9 standards, Internet Explorer 10 standards, Internet Explorer 11 standards. Also supported in Store apps (Windows 8 and Windows Phone 8.1). See Version Information.

See Also

if...else Statement
Operator Precedence
Operator Summary (JavaScript)
Script Junkie configuration widget sample app