Skip to content

Commit 7bd2a0f

Browse files
committed
Created a subsection on equality.
Created a new page beginning to discuss equality early on, immediately after types. This introduces == and === operators as soon as can be done (IMO) after types are introduced.
1 parent 5fa3d51 commit 7bd2a0f

File tree

2 files changed

+19
-0
lines changed

2 files changed

+19
-0
lines changed

SUMMARY.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
* [Comments](basics/comments.md)
55
* [Variables](basics/variables.md)
66
* [Types](basics/types.md)
7+
* [Equality](basics/equality.md)
78
* [Numbers](numbers/README.md)
89
* [Creation](numbers/create.md)
910
* [Basic Operators](numbers/operators.md)

basics/equality.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Equality
2+
3+
Programmers frequently need to determine the equality of variables in relation to other variables. This is done using an equality operator.
4+
5+
The most basic equality operator is the `==` operator. This operator does everything it can to make determine if two variables are equal, even if they are not of the same type.
6+
7+
For example, assume
8+
```
9+
var foo = 42;
10+
var bar = 42;
11+
var baz = "42";
12+
var qux = "life";
13+
```
14+
.
15+
16+
`foo == bar` will evaluate to `true` and `baz == qux` will evaluate to false, as one would expect. However, `foo == baz` will *also* evaluate to `true` despite `foo` and `baz` being different types. Behind the scenes the `==` equality operator attempts to force its operands to the same type before determining their equality. This is in contrast to the `===` equality operator.
17+
18+
The `===` equality operator determines that two variables are equal if they are of the same type *and* have the same value. With the same assumptions as before, this means that `foo === bar` will still evaluate to `true`, but `foo === baz` will now evaluate to `false`. `baz === qux` will still evaluate to `false`.

0 commit comments

Comments
 (0)