To hit the nail on the head when it comes to JavaScript null and undefined, JavaScript null refers to an existing parking lot while JavaScript undefined refers to a non-existent one.
This means that null alludes to the presence of a space that can or can not have a car on it, while undefined means that the parking space itself is not there.
That is basically it, we can call it wraps here. But if you want to, keep on reading.
Think of null as a physical parking space which can exist in two different states:
An empty parking space
A parking space with a car
A JavaScript null means that that specific reference can actually have a value or not.
Considering example #1 above, the parking space can at times be empty, just because it is empty does not mean it is non existent.
Now, when someone decides to park on a given space, that is where we have example #2, the space now has a value as needed.
Well, as for JavaScript undefined, this basically means that the parking space never existed in the first place. It is not there at all, and unless it is created it cannot be capable of accommodating a car.
Null shows / gives the possibility of a value existing in the reserved space, on the other hand, undefined eliminates the presence of space.