Pergunta

Ao combinar a atribuição com a vírgula (algo que você não deve fazer, provavelmente), como o JavaScript determina qual valor é atribuído? Considere esses dois trechos:

function nl(x) { document.write(x + "<br>"); }
var i = 0;
nl(i+=1, i+=1, i+=1, i+=1);
nl(i);

E:

function nl(x) { document.write(x + "<br>"); }
var i = 0;
nl((i+=1, i+=1, i+=1, i+=1));
nl(i);

As primeiras saídas

1
4

Enquanto as segundas saídas

4
4

O que os parênteses estão fazendo aqui?

Foi útil?

Solução

Eu estava confundindo duas coisas, aqui. A primeira chamada para 'NL' é uma chamada de função com quatro argumentos. O segundo é a avaliação da vírgula em um argumento.

Então, a resposta: o valor de uma lista de expressões separadas por '' é o valor da última expressão.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top