Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.javascript > #27883

Re: Why does (a,b,c) return only c?

From Joao Rodrigues <groups_jr-1@yahoo.com.br>
Newsgroups comp.lang.javascript
Subject Re: Why does (a,b,c) return only c?
Date 2015-05-26 09:36 -0300
Organization Aioe.org NNTP Server
Message-ID <mk1pc4$ajd$1@speranza.aioe.org> (permalink)
References <55630af5$0$13000$c3e8da3$5496439d@news.astraweb.com> <gf4c3c-iks.ln1@mail.binaryfoundry.ca> <XnsA4A5DF4D39BAAeejj99@194.109.133.246> <mk07ei$t55$1@speranza.aioe.org> <1687513.QYX3roR0lP@PointedEars.de>

Show all headers | View raw


On 26/05/2015 07:26, Thomas 'PointedEars' Lahn wrote:
> Joao Rodrigues wrote:
> 
>> But why on Earth would someone use comma operators? Because they let you
>> specify more than one expression where JavaScript expects only one. See
>> examples at:
>> <https://javascriptweblog.wordpress.com/2011/04/04/the-javascript-comma-operator/>
> 
> Bogus.

A bit of disdain here.

See an example:

var colorIndex = 0,
    colors = ["FF0000", "008000", "FF0086"];

function selectNextColor() {
  return colors[colorIndex++] || colors[colorIndex = 0, colorIndex++];
}

> 
> | //original
> | var a = 7, 5;
> | //apply = operator
> | var a, 5; //a is now 7
> | //SyntaxError: missing variable name 
> 
> is not a syntax error because “we [haven’t] wrapped the variable assignment 
> in parentheses”, but because _“5” is not a valid variable name_.

ACK.

> 
> And the value of “a” is not 7, but _not defined_ at this line (that is 
> different from the “undefined” value), because
> 
>   var a = 7, 5;
> 
> is a syntax error already:


ACK.

> 
> The subsequent example in that article, where it works, is
> 
> | //original
> | var a = (7, 5);
> | //apply group
> | var a = 5;
> 
> where not only the parentheses have been inserted, but magically the comma 
> has been replaced by a “=”.  Surprise.

Wrong, because var a = (7, 5) is evaluated as follows:

var a;
a = (7, 5); // a = 5;

The parentheses (grouping operator, ES 5.1, §11.1.6) return the result
of evaluating expression, i.e (7, 5) will return 5.


-- 
Joao Rodrigues

Back to comp.lang.javascript | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Why does (a,b,c) return only c? Steven D'Aprano <steve@pearwood.info> - 2015-05-25 21:43 +1000
  Re: Why does (a,b,c) return only c? "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2015-05-25 14:17 +0200
    Re: Why does (a,b,c) return only c? Luuk <luuk@invalid.lan> - 2015-05-25 14:42 +0200
      Re: Why does (a,b,c) return only c? "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2015-05-25 14:58 +0200
    Re: Why does (a,b,c) return only c? "Christoph M. Becker" <cmbecker69@arcor.de> - 2015-05-25 14:57 +0200
      Re: Why does (a,b,c) return only c? "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2015-05-25 15:07 +0200
        Re: Why does (a,b,c) return only c? "Christoph M. Becker" <cmbecker69@arcor.de> - 2015-05-25 15:32 +0200
          Re: Why does (a,b,c) return only c? "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2015-05-25 17:50 +0200
        Re: Why does (a,b,c) return only c? Luuk <luuk@invalid.lan> - 2015-05-25 19:53 +0200
          Re: Why does (a,b,c) return only c? "D. Aaron Sawyer" <aaron@110.net> - 2015-05-25 19:49 -0300
  Re: Why does (a,b,c) return only c? John-Paul Stewart <jpstewart@sympatico.ca> - 2015-05-25 13:58 -0400
    Re: Why does (a,b,c) return only c? "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2015-05-25 21:57 +0200
      Re: Why does (a,b,c) return only c? Joao Rodrigues <groups_jr-1@yahoo.com.br> - 2015-05-25 19:24 -0300
        Re: Why does (a,b,c) return only c? Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2015-05-26 12:26 +0200
          Re: Why does (a,b,c) return only c? Joao Rodrigues <groups_jr-1@yahoo.com.br> - 2015-05-26 09:36 -0300
            Re: Why does (a,b,c) return only c? Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2015-05-26 14:42 +0200
              Re: Why does (a,b,c) return only c? Joao Rodrigues <groups_jr-1@yahoo.com.br> - 2015-05-26 09:53 -0300
                Re: Why does (a,b,c) return only c? "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2015-05-26 15:15 +0200
                Re: Why does (a,b,c) return only c? Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2015-05-26 15:17 +0200
          Re: Why does (a,b,c) return only c? Scott Sauyet <scott.sauyet@gmail.com> - 2015-05-26 08:59 -0700

csiph-web