I was reading these slides and I found the following javascript line:
({} + [])[!![] + !![] + !![]] + (![] + [])[!![] + !![] + !![]]
If you execute this line at the console, it will return "js". Altering the code makes the line return different letters. I could almost return my name(missing "n"):
({} + [])[!![] + !![] + !![]] + (![] + {})[!![] + !![] + !![] + !![]] + (![] + {})[![] + !![] ]
Why this happens? How this works? The slides didn't give much information about it.