Sjmarf@sh.itjust.works to Programmer Humor@programming.dev · 4 months agoJavaScriptsh.itjust.worksimagemessage-square48fedilinkarrow-up15arrow-down11
arrow-up14arrow-down1imageJavaScriptsh.itjust.worksSjmarf@sh.itjust.works to Programmer Humor@programming.dev · 4 months agomessage-square48fedilink
minus-squareVictor@lemmy.worldlinkfedilinkarrow-up1·4 months agoSo there’s yet another level of quirkery to this bullshit then, it seems. 😆 Nice digging! 🤝 I also noticed that if you surround the curlies with parentheses, you get the same again: > eval('{} + []') 0 > eval('({}) + []') '[object Object]'
minus-squarePoolloverNathan@programming.devlinkfedilinkarrow-up1·4 months agoYep, parentheses force {} to be interpreted as an expression rather than a block — same reason why IIFEs have !function instead of just function.
minus-squaredejected_warp_core@lemmy.worldlinkfedilinkarrow-up1·4 months ago/me goes back to get second folding chair.
So there’s yet another level of quirkery to this bullshit then, it seems. 😆 Nice digging! 🤝
I also noticed that if you surround the curlies with parentheses, you get the same again:
> eval('{} + []') 0 > eval('({}) + []') '[object Object]'
Yep, parentheses force
{}
to be interpreted as an expression rather than a block — same reason why IIFEs have!function
instead of justfunction
./me goes back to get second folding chair.