DÊVIDA NO USO COLCHETES VAZIOS EM JQUERY
Estou estudando jQuery, mais especificamente o uso do .val(), porém me deparei com uma linha que me fez surgir uma dúvida. Sei que os colchetes [] são usados em diversos recursos, inclusive Arrays, mas no exemplo abaixo eu não consegui entender o significado dele vazio. Entendi que na variável multipleValues está sendo atribuÃdo o valor $( [Ô]#multiple[Ô] ).val() e as || representam a dijunção OU e os colchetes vazios?
35 var multipleValues = $( [Ô]#multiple[Ô] ).val() || [];
Segue o endereço do exemplo http://api.jquery.com/val/
Grata
Citação:No exemplo que você mostrou, o jquery irá procurar todos os elementos cujo id seja [Ô]multiple[Ô], o que não faz sentido pois ids são geralmente únicos.
O exemplo que ela colocou não é dela, veio da própria documentação do JQuery.
function displayVals() {
var singleValues = $( [Ô]#single[Ô] ).val();
var multipleValues = $( [Ô]#multiple[Ô] ).val() || [];
$( [Ô]p[Ô] ).html( [Ô]<b>Single:</b> [Ô] + singleValues +
[Ô] <b>Multiple:</b> [Ô] + multipleValues.join( [Ô], [Ô] ) );
}
Citação::
Esta estratégia é equivalente aos métodos [Ô]...OrDefault[Ô], muito comuns no .NET. Eles garantem que a execução do método não terá um null o que geralmente resulta em uma exceção. No exemplo que você mostrou, o jquery irá procurar todos os elementos cujo id seja [Ô]multiple[Ô], o que não faz sentido pois ids são geralmente únicos.
Oi KERPLUNK, você estava sumido! Estou de volta apanhando no jQuery. Como o JABA comentou, este código é do próprio site do jQuery. Resolvi postar este código porque vi não só no site do jQuery, mas também em outros fóruns internacionais. O que deu a entender na sua explicação é que esta prática é incorreta, certo?
Citação::
A operação formada com um [Ô]||[Ô] é um curto-circuito. Ou seja, primeiro verifica-se se a primeira parte da sentença é verdadeira, se for, ele joga o resultado na variável e não executa a outra parte da sentença (que é a parte depois do [Ô]||[Ô]). Caso contrário, se não achou nada na primeira sentença (tudo foi falso), o interpretador partirá para a segunda parte da sentença. E nessa parte, temos uma declaração de um Array vazio ([] são arrays vazios). Após a sua execução, sua variável seria preenchida com um array vazio.
JABA, então na linha:
var multipleValues = $( [Ô]#multiple[Ô] ).val() || [];
Se $( [Ô]#multiple[Ô] ).val() for null, a variável multipleValues será uma array da mesma forma se eu definisse var multipleValues = new Array()?
Citação:Se $( [Ô]#multiple[Ô] ).val() for null, a variável multipleValues será uma array da mesma forma se eu definisse var multipleValues = new Array()?
Sim, isso mesmo!