Power operator, why does -2**3 throws?
ljharb at gmail.com
Tue Oct 18 08:59:25 UTC 2016
It's quite simple (as has already been stated): some people expect `-x **
y` to be `-(x ** y)`. Some expect it to be `(-x) ** y`.
The early SyntaxError ensures that nobody is confused - programmers will
immediately add parens to disambiguate.
Avoiding a potential footgun for the next 50 years, at the insignificant
cost of adding two characters so that it parses seems like a very cheap
price to pay.
On Tue, Oct 18, 2016 at 12:20 AM, medikoo <medikoo+mozilla.org at medikoo.com>
> I must say throwing here, instead of relying on math dictated operators
> precedence looks really bad.
> It's very surprising to those well experienced with the language, and
> totally inconsistent with how operators worked so far (there is no previous
> case where one will throw for similar reason).
> Also argument that it's inconsistent with Math.pow(-2, 2), is total miss in
> my eyes.
> I believe to most programmers `Math.pow(-2, 2)`, translates to `(-2)**(2)`
> and not to `-2**2`,
> same as `Math.pow(a ? b : c, 2)` intuitively translates to `(a ? b :
> c)**(2)` and not to `a ? b : c**2`
> View this message in context: http://mozilla.6506.n7.nabble.
> Sent from the Mozilla - ECMAScript 4 discussion mailing list archive at
> es-discuss mailing list
> es-discuss at mozilla.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the es-discuss