Operador de vírgula JavaScript
-
20-08-2019 - |
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?
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