=
is only used to assign variables. ===
or ==
are used to compare. For a good example, we must look into comparison operators.
Syntax
The syntax of comparison operators is fairly simple, use them to evaluate expressions. The comparasin operators are:
=== //strict equality
== //Parsed or partial equality
> //Greater Than
< //Less than
>= //Greater than or equal to
<= //Less than or equal to
To properly use these, you must know the proper syntax. For example, I can't do something like:
if(true == 1 === true) //do something
as that would invalidate the code, and slow it down by much using ==
, which brings me to my next section.
Equality
The two equality operators in JavaScript are ==
and ===
. They do two very different things.
===
The strict equality (===
) tests whether two values are exactly equivalent, both in type and value.
==
The Parsed equality (==
) tests whether two values are equalivent in value, but parses to try and connect different types.
Inequality
There are 2 main inequality value in JavaScript (!==
) they are pretty self explainatory based on the equalities (===
, and ==
)
here's a chart explaining the three.
1 0 true false null undefined ""
1 === !== == !== !== !== !==
0 !== === !== == == == !==
true == !== === !== !== !== !==
false !== == !== === == == ==
null !== == !== == == == ==
undefined !== == !== == == === !==
"" !== == !== == == !== ===
Adding onto what @jcollum said, =
defines a variable value, and if(something === true)
simplifies into if(something)
. Similarly, if(something === false)
simplifies into if(!something)
.
You also need to do comparisons separately. if(7 & 6 < 10)
returns false because it is the simplified version of if(7 === true && 6 < 10)
.