Hacker News new | ask | show | jobs
by bshimmin 4084 days ago
It's somehow quite reassuring that you can just type complete gibberish in JavaScript and it usually does something; for example:

   !~!~1234.5678["constructor"]["constructor"](console.log("foo"))
Of course that logs "foo" - why wouldn't it?!
1 comments

Assuming the syntax is valid, tacking (console.log("foo")) on the end of lots of things should log foo, even if there's an error elsewhere. The "console.log('foo')" will be evaluated before trying to call the rest as a function, so even "undefined(console.log('foo'))" logs "foo" when tested in the Firefox JS console:

    undefined(console.log('foo'))
    TypeError: undefined is not a function
    "foo"