On Mon, Aug 25, 2014 at 12:40 PM, Charles Pick <char...@codemix.com> wrote:
> Hello, forgive me if this has come up before, I couldn't find any > discussions via Google. > > One regular, annoying mistake I see people making is combining the `!` > operator with `instanceof`: > > if (!foo instanceof Foo) { ... } > > > of course, this must be written with extra parentheses: > > if (!(foo instanceof Foo)) { ... } > > > My question is, why? There are no circumstances where the developer > *intended* to write the first version, it's a typo and will always evaluate > to false, even when using Boolean. Therefore would it be possible to fix > the precedence so that the first version is parsed the same way as the > second? > While I agree that the associativity should be different, changing this won't work: there are probably tens of thousands of websites and node.js scripts and what have you out there that would break, because the rely on the current behavior. (Many of them probably because someone "fixed" the associativity issue by inverting the contents of then and else blocks instead of the condition.) Yes, those sites use somewhat broken code, but users don't care as long as they work.
_______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss