Type is a characteristic of a value affecting what kind of data it can store, and the structure that the data will adhere to. For example, a Boolean Data Type can hold only a true or false value at any given time, whereas a String has the ability to hold a string or a sequence of characters, a Number can hold numerical values of any kind, and so on.

A value's data type also affects the operations that are valid on that value. For example, a value of type number can be multiplied by another number, but not by a string - even if that string contains only a number, such as the string "2".

Types also provides us with useful knowledge about the comparison between different values. Comparison between structured types is not always an easy assumption, as even if the previous data structure is the same, there could be inherited structures inside of the Prototype Chain.

If you are unsure of the type of a value, you can use the typeof operator.