Comma operator in Arrow functions

Allen Wirfs-Brock allen at wirfs-brock.com
Sat Mar 14 19:52:14 UTC 2015


On Mar 14, 2015, at 12:37 PM, Caitlin Potter wrote:

> ConciseBody is an AssignmentExpression in this case, so I believe the comma is a syntax error.

no, comma is the lowest precedence of any operator.

hence:

a=1,2

parses as:

(a=1),2

and

a=()=>1,2

parses as:

(a=()=>1),2

Finally, note that

console.log(a=1,2)

assigns the value 1 to a, but outputs 2

Allen


> 
> 
> 
>> On Mar 14, 2015, at 3:29 PM, Biju <bijumaillist at gmail.com> wrote:
>> 
>> I was looking into Firefox implementation of Arrow functions
>> 
>> And noticed this
>> 
>> function a(){return 1,2};
>> a();
>> 
>> gives "2"
>> 
>> 
>> But with same with Arrow functions
>> 
>> a=()=>1,2;
>> a();
>> 
>> 
>> gives "1"
>> 
>> 
>> To get answer "2" in Arrow functions you need parentheses, like
>> 
>> a=()=>(1,2);
>> a();
>> 
>> 
>> 
>> Is this expected ?
>> 
>> 
>> 
>> Cheers
>> GC
>> _______________________________________________
>> es-discuss mailing list
>> es-discuss at mozilla.org
>> https://mail.mozilla.org/listinfo/es-discuss
> 
> _______________________________________________
> es-discuss mailing list
> es-discuss at mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss
> 



More information about the es-discuss mailing list