No, at least for JS the picture for undefined should actually be for "not defined" which yes is different. Undefined would be an empty holder without the spool holder.
0 = a 0 value
null = a value that means no value
undefined = the variable doesn't point to a value
not defined = there is no variable or anything