Why is this expression evaluated to "a" in JavaScript?

Viewed 302

I got hold of some obfuscated JavaScript code. I tried to understand it, and doing this, I typed pieces of it in the console. I can't understand why

> ((!!+[]+"")[+!![]])
< "a"

Why is ((!!+[]+"")[+!![]]) equal to "a" in JavaScript? Is there some other code snippets to get others letters?

I guess it's something to do with automatic casting.

5 Answers
Related