How do JavaScript's global variables really work?