It's because Eich was told to make JS C-like. In C, an empty array, an empty string, 0, false and null are all the same value: a word with all bits 0. So in JS, those are all are falsy and == to each other.
In 'object' terms, an empty string is still a string! It's something.
I guess if you think about it from a memory perspective, it's 'nothing'.
But since JS is not actually like C, I really wish "" were true.