Most programming languages feature conditions within them. JavaScript is no exception here.
What a condition is
A condition is a rule which must be met. For instance, a computer may only be switched on if the power switch is on at the wall. This is a simple condition.
Conditions play a huge part in programs as they very often dictate which way a program will run. They can create jumps between sections of code. This section of this tutorial will show several ways to control the flow of a JavaScript application using conditions.
Conditions in JavaScript
In JavaScript a condition is typed as a boolean type. The simplest conditions are true
and false
, but more complex conditions also return these as results.
There are several operators that can be used:
Symbol | Name | Returns true when |
---|---|---|
< | Less than |
a is less than b .
|
> | Greater than |
a is greater than b .
|
<= | Less than or equal to |
a is less than or equal to b .
|
>= | Greater than or equal to |
a is greater than or equal to b .
|
== | Equal to |
a is equal to b .
|
!= | Not equal to |
a is not equal to b .
|
=== | Identical |
a and b are the same and are the same type.
|
!== | Not identical |
a and b are not the same or are not the same type.
|
These operators are easy to use:
var x = 5; var y = 7; var z = 0; z = x < y; alert(z); z = x > y; alert(z); z = x <= y; alert(z); z = x >= y; alert(z); z = x == y; alert(z); z = x != y; alert(z); z = x === y; alert(z); z = x !== y; alert(z);
Propositional logic which programming languages such as JavaScript use can also join multiple conditions through logical conjunction and logical disjunction. These are better known as AND and OR.
AND and OR are based on AND gates and OR gates in computer hardware.
AND
AND requires that two conditions are true to return true.
The following is a truth table for AND:
P | Q | P AND Q |
---|---|---|
true | true | true |
true | false | false |
false | true | false |
false | false | false |
In JavaScript the AND symbol is &&
. The following is an example using AND in a condition:
var r = false; p = true; q = false; r = true; result = p && q; alert(result); result = p && r; alert(result);
OR
OR requires that one of the two conditions is true to return true.
The following is the truth table for OR:
P | Q | P OR Q |
---|---|---|
true | true | true |
true | false | true |
false | true | true |
false | false | false |
In JavaScript the OR symbol is ||
. The following is an example using OR in a condition:
var r = false; p = false; q = false; r = true; result = p || q; alert(result); result = p || r; alert(result);
Negation
The final type of logical operator is the NOT operator. The truth table following shows how NOT performs.
P | NOT P |
---|---|
true | false |
false | true |
In JavaScript, NOT is represented with the !
operator. Putting a NOT operator in front of
a boolean value will invert it. The following is a condition that uses
the NOT operator to flip the value of a boolean value:
var x = false; var y = true; alert(!x); alert(!y);
De Morgan's Law
A key law in logic is De Morgan's Law. This law shows:
- the negation of a conjunction is the disjunction of the negations;
- the negation of a disjunction is the conjunction of the negations;
Less formally:
-
!(A && B)
==!A || !B
-
!(A || B)
==!A && !B
The truth table for !(A && B)
and !A || !B
is as follows:
A | B | A && B | !(A && B) | !A || !B |
---|---|---|---|---|
true | true | true | false | false |
true | false | false | true | true |
false | true | false | true | true |
false | false | false | true | true |
Now in JavaScript:
var A = true; var B = false; alert(!(A && B)); alert(!A || !B);
Now the truth table for !(A || B)
and !A && !B
is as follows:
A | B | A || B | !(A || B) | !A && !B |
---|---|---|---|---|
true | true | true | false | false |
true | false | true | false | false |
false | true | true | false | false |
false | false | false | true | true |
Now in JavaScript:
var A = true; var B = false; alert(!(A || B)); alert(!A && !B);