37 messaggi dal 18 settembre 2003
Salve,
se eseguo questo javascript

a=0129;
b=0201;
alert(a==b);

ottengo come risultato true. Come è possibile? Come fa javascript a confrontare i numerici? Togliendo lo zero iniziale ovviamente il risultato è false...
Ma mi chiedo perchè poi ciò si verifichi sono con questi due numeri. Misteri...

Giuseppe
Nessun mistero. Il comportamento è corretto e documentato!

Cito da MSDN, riferimento metodo parseInt di JScript:

I valori con prefisso "0x" sono considerati a base 16 (hexadecimal), quelli con prefisso "0" a base 8 (octal) e tutti gli altri a base 10 (decimal).

Quando chiedi il confronto tra i tuoi due numeri javascript esegue implicitamente il parseInt, senza specificare la radice e... parseInt(0201) = parseInt(201, 8) = 129!

Matteo Casati
GURU4.net

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.