Using comparison operators, we can test the values of variables to detect if they are equivalent.
var x = 1;
var y = 0;
var z = "1";
var a = 5;
x == y;
x != y;
x == z;
x === z;
x !== z;
x > y;
x < y;
x >= z;
x <= a;
== two values are the same!= two values are not the same> value 1 is greater than value 2< value 1 is less than value 2>= value 1 is greater than or equal to value 2<= value 1 is less than or equal to value 2=== two values are the same and same type!== two values are not the same or not the same typeWe can compare strings as well as numbers.
var x = "hello";
var y = "world";
x == y;
x != y;
A boolean is a datatype that can be either true or false.
Booleans default to the values true and false.
In JavaScript other values will evaluate to false, such as 0, "" (empty string), NaN, null, and undefined. Everything else defaults to true, such as "Hello World", 1, 99, or -99. Try evaluating some booleans in the console with this syntax:
Boolean(true);
Boolean(false);
Boolean("");
Boolean(null);
Boolean(0);
Boolean(4);
Using booleans, we can make decision in our program with conditional statements starting with the keyword if:
var a = true;
var b = false;
if (a == true) {
console.log("This is true!");
}
if (a == false) {
console.log("This is false!");
}
if (b) {
console.log("This is true!");
}
if (!b) {
console.log("This is false!");
}
We can evaluate statements using numbers and strings as well:
var x = 0;
var y = 1;
var a = "hello";
var b = "world";
if (x == y) { console.log("This is true!"); }
if (x > y) { console.log("This is true!"); }
if (x != y) { console.log("This is true!"); }
if (x == a) { console.log("This is true!"); }
if (x > a.length) { console.log("This is true!"); }
if (x <= a.length) { console.log("This is true!"); }
We can use else to tell our program what to do if the conditional is false:
var x = 0;
var y = 5;
if (x < y) {
x++;
} else {
x--;
}
console.log(x);
Often there will be a set of conditions to test rather than a simple if {} else {} statement with a binary condition.
In these cases we can use else if to catch other conditions, or a switch statement.
var compare = function(n1, n2) {
if (n1 == n2) {
console.log("The values are equal.");
} else if (n1 < n2) {
console.log(n1 + " is less than " + n2);
} else {
console.log(n1 + " is greater than " + n2);
}
};
compare(0, 10);
compare(1, 0);
compare(5, 5);
var x = 0;
var y = 1;
var z = 2;
switch(0) {
case x:
console.log("the value is x");
break;
case y:
console.log("the value is y");
break;
default:
console.log("does not match a value");
break;
}
switch is not used often because the pattern is easily replicated with an object (which we'll learn in a few weeks).
There are a number of logical statements that help us evaluate more complex statements. We can use && and || to add statements to our condition. && requires all statements to evaluate true, reading left to right. || requires one of the statements on either side to be true.
true && false
7 == "7" && NaN != 1
false || true
7 === "7" || 1 == 1 && !(false)
We can also uses parathesis () to nest logic rules.
( true && true || false ) && true
var x = 0;
var width = 5;
var start = true;
if (x < width && start) {
x++;
} else if (x > 0) {
if (start) start = false;
x--;
}
console.log(x);