Static type checking is where you have a process that looks at how variables are being used, and then throws a wobbly if you do something weird. By this, I mean it looks at the type of each variable and uses either type annotations (bits of text defining what type a variable is when the variable itself is defined) or type inference (figuring out what the type is from how you first used it) to ensure that functions don't mutate a variable in an unexpected way. This is called static typing and is a feature built into many robust languages, such as C++ and Java. While JavaScript's dynamic typing (also shared by lots of other web languages, such as PHP and Ruby) is helpful in some ways and enables a certain style of programming, it can also be incredibly frustrating due to its ability to introduce silent errors.
As we&apos...