Newsgroup: it.comp.lang.javascript
Titolo: Come evitare un doppio controllo di tipo e di valore di una variabile ?

 la variabile i sia un tipo numerico ed uguale ad 1 ?
Risposta forse stupida, ma ci provo:
if(eval(i)!=1)
   alert("La variabile i non e' un tipo numerico pari a 1");
o magari
if(parseInt(i)!=1)
   alert("La variabile i non e' un tipo numerico pari a 1");
Le ho buttate lě.... :-)
-- 
Ciao, Riccardo
------------------------------------------------------------------------
WebMaster: ----> 
http://www.jsdir.com
 <---- (aka 
http://www.jspoint.it
)
              All the JavaScript you need
------------------------------------------------------------------------
               Nessun traguardo č abbastanza lontano.
------------------------------------------------------------------------

 la variabile i sia un tipo numerico ed uguale ad 1 ?
(i != 1) non va bene?
-- 
Oramai che i baci tuoi piu` non mi sazian
cerchero` un'altra donna dentro ai sogni di Tarzan

 Le ho buttate lě.... :-)
  Si vede, oltre al confronto hai aggiunto una funzione.
  Mi sa che il javascript lascia molto a desiderare per
 certe cose.

 (i != 1) non va bene?
  NO.
  Prova questo se non ne sei convinto:
  if("1" != 1) alert("Ok");

   if("1" != 1) alert("Ok");
Nessun alert... strano, pensavo che le schifezze di cambi di tipo non
richiesti fossero monopolio M$ (vedi relazioni folli di Access), invece
anche Netscape Communicator sotto MacOS si comporta ugualmente.
BTW mi sfugge qlcs: se "1"/1 e` il dato fornito dall'utente questo sara`
*necessariamente* di tipo testo, per cui farne il ParseInt() o il
ParseFloat() si rivelera` comunque indispensabile:
if (isNaN( i = ParseInt(i)) || (i!=1))alert('errore');


...

Prova cosě:
if("1" !== 1) alert("Ok");
("1" != 1)     false
("1" == 1)    true
("1" === 1)  false
("1" !== 1)   true
Ciao
www.gfcarlotti.it
fra...@gfcarlotti.it

 ("1" !== 1)   true
  Grazie. Adesso provo.
  Mi pareva strano che non ci fosse nulla di buono.
  Anche il PHP ha questi operatori ===
  Ma non e' che ti confondi con il PHP ?
  Adesso provo incrociando le dita.
  Ma sono documentati questi operatori ?


(==) Operatore di Uguaglianza .
(===) Operatore di Identità.
Nell'operatore di Uguaglianza le due variabili vengono convertite in
stringhe,
numeri o valori booleani.
Mentre nell'operatore di Identita' no.
<script language = "Javascript">
    var gfC_i= 1;
    var gfC_j= "1"
    var gfC_risp=(gfC_i===gfC_j)?"variabili identiche":"variabili non
identiche";
    alert("1==='1' o gfC_i===gfC_j:\n"+gfC_risp);
    var gfC_risp=(gfC_i==gfC_j)?"variabili uguali":"variabili non uguali";
    alert("1=='1' o gfC_i==gfC_j:\n"+gfC_risp);
</script>
!== Operatore di non Uguaglianza,
!=== Operatore di non Identita'.
Per la documentazione, non ricordo, penso al sito Netscape!.
Funziona dalla prima versione di javascript, (credo).
Ciao.
www.gfcarlotti.it
fra...@gfcarlotti.it

 anche Netscape Communicator sotto MacOS si comporta ugualmente.
  Microsoft ha fatto la cosa giusta una volta tanto.
  Nella guida incorporata allo script debugger di MSIE5+
 sul JScript esistono gli operatori di confronto che
 non eseguono la conversione del tipo. ===, !== ecc...
  Non li avevo mai visti perche' la mia guida di riferimento
 Javascript e' sempre stata quella Netscape JavaScript1.1,
 nella quale non ci sono. Del '96, un po' vecchiotta...