When you declare a variable, but don't give it a value, most of the time it will have a value of UNDEFINED. This differs from type to type. When you use a variable that has an UNDEFINED value, you can end up with run-time errors or behavior that's contrary to what you expected should happen. It's better to initialize the variable with a value even if it's an "empty" value like an empty string or an empty array.
FIXME - table for types, their non-initialized values, examples of initializing them.