The really nasty bugs come exactly from examples like these. This can save you hours at some point, I had to find some of them the hard way.
The really nasty bugs come exactly from examples like these. This can save you hours at some point, I had to find some of them the hard way.
instanceOf is broken.
precision arithmetic on floats is broken
var hoisting and function scope is a misfeature
It's more useful to know those facts than to know the exact result of them in individual contexts well enough to answer a multiple choice question.
It's more useful, if you see these examples in real life, to just rewrite them from scratch to not use the broken parts of javascript.
Javascript has pitfalls and ugly parts. they can be avoided. this test gives you no great insight into them, or how to avoid them.
Sounds like one hell of a PR pitch. :)
I got 15/37, in no small part by guessing "what's the most bizarre and inconsistent thing that could happen here"? Apparently my imagination is less vivid than JS's.
And actually you could avoid using "typeof" by using polyfills/builtins for the new "is[Type]" range of functions in ecmascript5. or a similar one from a library.
Also sometimes you have to maintain code, so it's not a choice.
There are always explanations that are helpful. You have to know about the pitfalls to be able to avoid them.
The questions just make you study the examples and also it's more fun this way.
I don't think there is other language that comes close to javascript. Ok it's everywhere now, you make a lot of money with it, that's what we have now, but you and others defending it make my ears bleed.