My initial reaction was one of complete annoyance. Anyone who knows me knows that I am certainly no stick-in-the-mud, and I’m certainly willing to forgo some amount of technical accuracy in the name of a good laugh. But for some reason, the approach taken by this site rubs me the wrong way.
For example, I found it frustrating that a large number of the WTFs amount to understand the difference between type-coercing equality (==) and strict equality (===), or misunderstand about scoping rules.
Next, consider this example about calling a function:
(x=.reverse)() === window // true
(x=.reverse).call() // 
Finally, some of the expectations are just incorrect. For example, in one post, they express surprise at the result of the expression (a + + b) when a and b are strings. I think the real WTF is why anyone is ending up with code like that, anyway.
Another baffling example:
typeof null // object
null === Object // false
This is the one that annoys me the most. Regardless of whether or not it’s unexpected that null is treated as an object, why would ANY object be equal to its constructor (which is of type “function”?) This post is flat out misleading, it’s the result of a natural language reading of a programming language construct.
- Group or tag the posts somehow, to indicate the type of fault occurring. For example, a lot of the posts could be tagged as “IEEE754” or “equality” or “globals”.
- Always include a technical discussion of the fault, so that those reading the page have the opportunity to understand why they see the behavior they do, rather then having to treat it as some weird axiomatic case.