Type Systems


Static type checking

A language is statically typed if the type of a variable is known at compile time. The main advantage here is that all kinds of checking can be done by the compiler and therefore a lot of trivial bugs are caught at a very early stage.

Dynamic type checking

A language is dynamically typed if the type is associated with runtime values and not named variables/fields/etc.

Javascript is dynamically typed. So until it is actually instantiated at run-time, the engine does not know what our types are.