WTF does this code do?
benvan.co.ukThis is why you should always use semicolons in JavaScript. Omitting semicolons here turns this:
var angry = say('Garrrr!')
// what should I say?
(amIHappy ? happy : angry)()
into this: var angry = say('Garrrr!')(amIHappy ? happy : angry)()Most web browsers (if you're running this code in a web browser), will do ASI (automatic semicolon insertion).
http://jsfiddle.net/CxUXh/ works fine in Chrome, changing the console.log to an alert.
Not that I'm advocating omitting semicolons!
Interesting - your jsfiddle exhibits broken behaviour (alerting 'garrr') on my browser - chrome 33.0.1750.152. I believe I'm fairly up to date.
You're correct, I thought that was expected behavior, my mistake. TBH though, I'm surprised ASI didn't fix the problem, I'll have to look at the rules for insertion again.
Does it return that because `say` isn't defined inside its own function definition, so it evaluates as false?
It doesn't seem to do anything.
Hahaha, nice!
I'm getting a linter.
this is idiotic