About

Dynamically typed languages are sometimes referred to as duck-typed or duck languages.

The type is not on the variable but on the value. It means that the code has to run to be able to discover the type and if any will report the type errors at runtime, not at compile time.

This kind of language are then generally weak typed and allows different value to have several type. For instance, the string true may be also seen as a valid boolean.

Example