Newsgroup: it.comp.lang.javascript
Titolo: e' corretto concatenare piu' OR?

Salve a tutti
Per controllare i campi di un form ho scritto del codice come il seguente:
<snip>
if ((document.modulo.nome.value == "" ) || (document.modulo.cognome.value ==
"" ) || (document.modulo.email.value == "" ) ||
(document.modulo.indirizzo.value == "" ))
   {
    ... "esegui istruzione"
   }
<snip>
incluso in una funzione che viene chiamata attraverso il gestore onSubmit.
Il codice funziona correttamente (IE5 e NN4.7), ad esempio se riempio i
primi 3 campi e lascio vuoto il quarto (quindi supero la verifica del
secondo termine in OR) viene eseguita "istruzione".
Il dubbio: in nessun testo consultato sono riuscita a trovare qualche
esempio o discussione che facesse riferimento a più OR concatenati, si parla
sempre di due OR e della sequenza di valutazione.
Qualcuno sa dirmi se è sintatticamente corretto scrivere del codice come
sopra?
Grazie, ciao a tutti
Camilla

 sopra?
Non sò se gli altri del NG la pensano come me,...cmq per me è
sintatticamente corretto tutto quello che funxia bene!!
____________________
andreotta fabiano
WebMªster ATI POWER s.n.c.
andr...@atipower.it
http://www.atipower.it
http://www.afdsoftware.freeweb.org
____________________
Collaboratore: 
http://www.jsdir.com
____________________
*¢ L'unica certezza nella vita è che tutto è relativo (per fortuna)¢*

Ciao
anch'io la penserei come te però aver testato il codice solo su win e su due
browser evoluti non mi sembra sufficiente per dire che funziona bene.
In altre parole mi sta bene ma mi lascia il dubbio sulla sintassi, non
pensi?


 > sintatticamente corretto tutto quello che funxia bene!!
Ecco, io ad esempio non la penso come lui. ;)
Quando un codice funziona, non e' detto ne' che sia sintatticamente corretto
(Internet Explorer, ad esempio, insegna..), ne' tantomeno che sia un buon
codice.
Come si dice nel mio campo "funzionare bene e' il requisito minimo di un
applicazione".
In un programma il minimo che ci si aspetti e' che funzioni, e proprio per
questo "funzionare" da se' non basta.
Sembra una banalita', ma a tutt'oggi ci sono prodotti commerciali che non
soddisfano tale richiesta, anzi.

 codice.
Intendevo funziona bene con tutti o quasi i browser......se fosse per me IE
non lo prenderei neanche in considerazione, tantomeno per testare script
,(infatti non li provo neanche più con IE , tanto sono sicuro che funzionano
sempre) ma
purtroppo la massa vuole quello :-((((((
Ciao!


 Ciao!


 "sicuro" da eventuali "dubbi". :)
<snip>
Infatti è così, le ho usate per rapidità perchè non ho ancora imparato
l'ordine di precedenza degli operatori :)
Camilla

 l'ordine di precedenza degli operatori :)
:)
Un breve suggerimento, se gia' non lo sai.
Nel caso di una condizione composta dall'operatore booleano "and", come ad
esempio:
if (a && b)
il Javascript controlla che la prima espressione sia vera (a), in caso
positivo passa alla seconda (ovviamente), ma in caso negativo, si ferma li'.
Ovvero, le condizioni successive non le controlla nemmeno.
Questa caratteristica (che non in tutti linguaggi esiste) puo' essere utile
per piu' di un motivo.
Ad esempio, puoi ottimizzare il codice ponendo *prima* le condizioni con una
priorita' maggiore.
Oppure, in un caso del genere:
if (myObj && myObj.property)
eviti che il parser Javascript ti dia errore nel caso che l'oggetto "myObj"
non esista (in quanto se controllasse entrambi le condizioni, e l'oggetto
myObj fosse null o undefined, la seconda istruzione genererebbe errore.. in
questo caso, invece, non accade).