- if. else
- Try it
- Syntax
- Description
- Examples
- Using if. else
- Using else if
- Using an assignment as a condition
- Specifications
- Browser compatibility
- See also
- Found a content problem with this page?
- JavaScript if, else, and else if
- Conditional Statements
- The if Statement
- Syntax
- Example
- The else Statement
- Example
- The else if Statement
- Syntax
- Example
- More Examples
- JavaScript if. else
- Parameter Values
- More Examples
- Related Pages
- Browser Support
if. else
The if. else statement executes a statement if a specified condition is truthy. If the condition is falsy, another statement in the optional else clause will be executed.
Try it
Syntax
if (condition) statement1 // With an else clause if (condition) statement1 else statement2
An expression that is considered to be either truthy or falsy.
Statement that is executed if condition is truthy. Can be any statement, including further nested if statements. To execute multiple statements, use a block statement ( < /* . */ >) to group those statements. To execute no statements, use an empty statement.
Statement that is executed if condition is falsy and the else clause exists. Can be any statement, including block statements and further nested if statements.
Description
Multiple if. else statements can be nested to create an else if clause. Note that there is no elseif (in one word) keyword in JavaScript.
if (condition1) statement1 else if (condition2) statement2 else if (condition3) statement3 // … else statementN
To see how this works, this is how it would look if the nesting were properly indented:
if (condition1) statement1 else if (condition2) statement2 else if (condition3) statement3 // …
To execute multiple statements within a clause, use a block statement ( < /* . */ >) to group those statements.
if (condition) statements1 > else statements2 >
Not using blocks may lead to confusing behavior, especially if the code is hand-formatted. For example:
function checkValue(a, b) if (a === 1) if (b === 2) console.log("a is 1 and b is 2"); else console.log("a is not 1"); >
This code looks innocent — however, executing checkValue(1, 3) will log «a is not 1». This is because in the case of dangling else, the else clause will be connected to the closest if clause. Therefore, the code above, with proper indentation, would look like:
function checkValue(a, b) if (a === 1) if (b === 2) console.log("a is 1 and b is 2"); else console.log("a is not 1"); >
In general, it is a good practice to always use block statements, especially in code involving nested if statements.
function checkValue(a, b) if (a === 1) if (b === 2) console.log("a is 1 and b is 2"); > > else console.log("a is not 1"); > >
Do not confuse the primitive Boolean values true and false with truthiness or falsiness of the Boolean object. Any value that is not false , undefined , null , 0 , -0 , NaN , or the empty string ( «» ), and any object, including a Boolean object whose value is false , is considered truthy when used as the condition. For example:
const b = new Boolean(false); if (b) console.log("b is truthy"); // "b is truthy" >
Examples
Using if. else
if (cipherChar === fromChar) result += toChar; x++; > else result += clearChar; >
Using else if
Note that there is no elseif syntax in JavaScript. However, you can write it with a space between else and if :
if (x > 50) /* do something */ > else if (x > 5) /* do something */ > else /* do something */ >
Using an assignment as a condition
You should almost never have an if. else with an assignment like x = y as a condition:
However, in the rare case you find yourself wanting to do something like that, the while documentation has a Using an assignment as a condition section with an example showing a general best-practice syntax you should know about and follow.
Specifications
Browser compatibility
BCD tables only load in the browser
See also
Found a content problem with this page?
This page was last modified on Apr 5, 2023 by MDN contributors.
Your blueprint for a better internet.
JavaScript if, else, and else if
Conditional statements are used to perform different actions based on different conditions.
Conditional Statements
Very often when you write code, you want to perform different actions for different decisions.
You can use conditional statements in your code to do this.
In JavaScript we have the following conditional statements:
- Use if to specify a block of code to be executed, if a specified condition is true
- Use else to specify a block of code to be executed, if the same condition is false
- Use else if to specify a new condition to test, if the first condition is false
- Use switch to specify many alternative blocks of code to be executed
The switch statement is described in the next chapter.
The if Statement
Use the if statement to specify a block of JavaScript code to be executed if a condition is true.
Syntax
Note that if is in lowercase letters. Uppercase letters (If or IF) will generate a JavaScript error.
Example
Make a «Good day» greeting if the hour is less than 18:00:
The result of greeting will be:
The else Statement
Use the else statement to specify a block of code to be executed if the condition is false.
if (condition) // block of code to be executed if the condition is true
> else <
// block of code to be executed if the condition is false
>
Example
If the hour is less than 18, create a «Good day» greeting, otherwise «Good evening»:
The result of greeting will be:
The else if Statement
Use the else if statement to specify a new condition if the first condition is false.
Syntax
if (condition1) // block of code to be executed if condition1 is true
> else if (condition2) // block of code to be executed if the condition1 is false and condition2 is true
> else // block of code to be executed if the condition1 is false and condition2 is false
>
Example
If time is less than 10:00, create a «Good morning» greeting, if not, but time is less than 20:00, create a «Good day» greeting, otherwise a «Good evening»:
if (time < 10) <
greeting = «Good morning»;
> else if (time < 20) <
greeting = «Good day»;
> else <
greeting = «Good evening»;
>
The result of greeting will be:
More Examples
Random link
This example will write a link to either W3Schools or to the World Wildlife Foundation (WWF). By using a random number, there is a 50% chance for each of the links.
JavaScript if. else
The if statement specifies a block of code to be executed if a condition is true:
The else statement specifies a block of code to be executed if the condition is false:
if (condition) // block of code to be executed if the condition is true
> else <
// block of code to be executed if the condition is false
>
The else if statement specifies a new condition if the first condition is false:
if (condition1) // block of code to be executed if condition1 is true
> else if (condition2) // block of code to be executed if the condition1 is false and condition2 is true
> else // block of code to be executed if the condition1 is false and condition2 is false
>
Parameter Values
More Examples
If time is less than 10:00, create a «Good morning» greeting, if not, but time is less than 20:00, create a «Good day» greeting, otherwise a «Good evening»:
var time = new Date().getHours();
if (time < 10) greeting = "Good morning";
> else if (time < 20) greeting = "Good day";
> else greeting = «Good evening»;
>
If the first element in the document has an id of «myDIV», change its font-size:
var x = document.getElementsByTagName(«DIV»)[0];
if (x.id === «myDIV») <
x.style.fontSize = «30px»;
>
Change the value of the source attribute (src) of an element, if the user clicks on the image:
Display a message based on user input:
var letter = document.getElementById(«myInput»).value;
var text;
// If the letter is «c»
if (letter === «c») text = «Spot on! Good job!»;
// If the letter is «b» or «d»
> else if (letter === «b» || letter === «d») text = «Close, but not close enough.»;
// If the letter is anything else
> else text = «Waaay off..»;
>
// Get the value of the input field with >x = document.getElementById(«numb»).value;
// If x is Not a Number or less than 1 or greater than 10, output «input is not valid»
// If x is a number between 1 and 10, output «Input OK»
if (isNaN(x) || x < 1 || x >10) text = «Input not valid»;
> else text = «Input OK»;
>
Related Pages
Browser Support
if. else is an ECMAScript1 (ES1) feature.
ES1 (JavaScript 1997) is fully supported in all browsers:
Chrome | Edge | Firefox | Safari | Opera | IE |
Yes | Yes | Yes | Yes | Yes | Yes |