Power operator, why does -2**3 throws?
medikoo+mozilla.org at medikoo.com
Tue Oct 18 08:05:17 UTC 2016
There are many other cases when with no parens involved, people have
different expectations on the outcome.
If expression looks ambigous the actual result always depends on operators
precedence, it's how language worked for years, and I don't remember any big
problems due to that.
Jordan Harband wrote
> 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 <
>> 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
>> case where one will throw for similar reason).
>> Also argument that it's inconsistent with Math.pow(-2, 2), is total miss
>> my eyes.
>> I believe to most programmers `Math.pow(-2, 2)`, translates to
>> 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 mailing list
View this message in context: http://mozilla.6506.n7.nabble.com/Power-operator-why-does-2-3-throws-tp359609p359733.html
Sent from the Mozilla - ECMAScript 4 discussion mailing list archive at Nabble.com.
More information about the es-discuss