!!false===false!!true===true!!0===false!!parseInt("foo") ===false// NaN is falsy!!1===true!!-1===true// -1 is truthy!!""===false// empty string is falsy!!"foo"===true// non-empty string is truthy!!"false"===true// ...even if it contains a falsy value!!window.foo ===false// undefined is falsy!!null===false// null is falsy!!{} ===true// an (empty) object is truthy!![] ===true// an (empty) array is truthy; PHP programmers beware!