Why is it that an empty string evaluates to false in JavaScript. I know Douglas Crockford has spoken quite a bit about truthy and falsy in javascript but this still surprise
Because it has nothing in it. An empty string is a false value in many languages. This is standard according to the specification.
The result is false if the argument is the empty String (its length is zero); otherwise the result is true
— section 9.2 of Ecma-262