is not defined vs undefined?
If a variable is accessed before defining then JS will show it as not defined, and if a variables is defined but not initialized I.e. no values is assigned it to it before accessing, then its undefined. Null means an empty or non-existent value. Null is assigned, and explicitly means nothing.