God man, where did you find those "errors" in JavaScript? I suggest never reading anything by that person again. Other than the third example, the first is completely normal, expected behavior in any c/c++ based language, the second is 100% normal in all non-decimal number systems with finite precision.
if (new Array() == false) {console.log('wat')};
This is the normal behavior of c/c++ derived languages. "new" tries to allocated memory to an object, and returns a pointer to the newly allocated memory. If the allocation call fails (e.g. not enough memory), then it returns a null pointer. "false" is the boolean value of a null pointer. so there's no "WTF JavaScript?" here, it's just checking whether the array was allocated, which is the best practice way to go about this. The writer can keep going about his shit-ass "wow proper coding looks retarded because I don't understand it, I won't bother checking memory constraints at all!
var x=0.1+0.2;
if (x!=0.3) { console.log('you serious???') };
You never compare floats because of finite precision rounded errors. That is 100% expected to fail.
[spoiler]This is the normal behavior of ALL computers and all number systems. This is where the guy is really revealed as a complete novice and not very educated in mathematics. ALL computer fractions are stored in binary, not decimal, and are rounded to their nearest binary equivalent. Since it's binary then unless those values are expressable as some exact addition of 1/2+1/4+1/8+1/16+1/32+1/64 ... 1/2n-1, where n = number of bits used to store the fractional part, then there will be rounding errors. Hence, binary can't exactly express 1/3,1/5,1/7,1/10 etc.
The binary representation of 1/10, being off-base, is an infinite repeating series of digits, analogous to 1/3 on decimal. say you stored numbers in decimal with finite precision. Then, 1/3 would be 0.33333333. Twice that would be 0.66666666. But 2/3 = 0.66666667 OMG numbers are broken ;o;
var y;
if (y==undefined) { console.log('This is normal...') };
undefined=x;
if (y!=undefined) { console.log('WHY') };
I tested this and couldn't get the error behavior