defines what kind of value a variable can hold such as number or string
indicates the type of data a memory location (variable or named constant) can store
defines the information that can be stored in a variable, the size of needed memory and the operations that can be performed with the variable.