WTF JS? Global variables function plus_two(n) { two = 2; return n + two; } plus_two(3); // 5 - obviously, 3 + 2 = 5 two; // 2 - wtf, JS? The with block var foo = 5; with (obj) foo; // 5, unless obj.foo exists Wtf is the deal with the == operator? 2 === "2"; // false - obviously a number is not a string 2 == "2"; // true - wtf JS?