Why is null an object and what's the difference between null and undefined?

Why is null considered an object in JavaScript?

if ( object == null )
      Do something

the same as

if ( !object )
      Do something

Also, can someone put some of their views on the difference between null and undefined?