Sjmarf to Programmer Humor@programming.dev • 1 year agoJavaScriptsh.itjust.worksimagemessage-square80fedilinkarrow-up1753arrow-down10
arrow-up1753arrow-down1imageJavaScriptsh.itjust.worksSjmarf to Programmer Humor@programming.dev • 1 year agomessage-square80fedilink
minus-squareVictorlinkfedilink21•1 year 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-square@PoolloverNathan@programming.devlinkfedilink10•1 year agoYep, parentheses force {} to be interpreted as an expression rather than a block — same reason why IIFEs have !function instead of just function.
minus-square@dejected_warp_core@lemmy.worldlinkfedilink3•1 year ago/me goes back to get second folding chair.
minus-squareVictorlinkfedilink1•edit-21 year agoI thought IIFE’s usually looked like (function (...params) {})(...args). That’s not the latest way? To be honest I never used them much, at least not after arrow functions arrived.
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.
I thought IIFE’s usually looked like
(function (...params) {})(...args)
. That’s not the latest way? To be honest I never used them much, at least not after arrow functions arrived.