Le 29/11/2012 09:41, Jussi Kalliokoski a écrit :
It's a bit unclear to me how arrow functions react to semicolons, for example:

var a = (c) => {
  var b = 2;
  b * c;
}

a(4);

To me, it seems like this should return undefined. After all, the last statement in the function is empty. To actually return b * c, you should drop the semicolon:

var a = (c) => {
  var b = 2;
  b * c
}

a(4);
I initially only read the 2 snippets and saw no difference. I realized the dropped semicolon only after reading the text in the middle. Making a semantic difference out of a present or missing semicolon seems it would cause a lot of wasted time debugging a program. Especially in JavaScript where semicolons are optional. JS devs have their eyes trained to not worry about semicolons (which is probably why I didn't see a difference at first).

I would expect 8 to be returned in both cases, semicolon or not.

This would be consistent with, for example, Rust and would help avoid annoying accidental returns (see [1] for discussion about this wrt CoffeeScript).
I wish JavaScript kept being consistent with JavaScript.

David
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to