Normally, a variable can hold any type of data, unless variables are declared explicitly. Constant variables are set using the readonly built-in command.
An array holds a set of variables. If a type of data is declared, then all elements in the array will be set to hold only this type of data.
Bash features allow for substitution and transformation of variables "on the fly". Standard operations include calculating the length of a variable, arithmetic on variables, substituting variable content and substituting part of the content.