Que resultado se obtém ao executar o seguinte código em JavaScript:
var x;
x += 0;
alert(x);
Se você respondeu 0, enganou-se, a saída será NaN (not a number). O problema todo ocorre porque uma variável recém declarada contém o valor undefined, que somado a zero resulta em NaN.
Agora imagine o seguinte trecho de código:
var x;
for(i = 0; i < size; i++) {
x += stream[i];
}
Simplesmente o resultado era sempre NaN, já que NaN somado a um número qualquer sempre resulta em NaN.
A solução é inicializar sempre varíáveis numéricas em JavaScript, evitando esse tipo de problema:
var x = 0;
x += 0;
alert(x);
O código foi testado tanto em IE quanto no Firefox, onde ocorre sempre, já que não se trata de uma falha de implementação. O comportamento segue a especificação da linguagem, ainda que seja um comportamento inesperado.
Post a Comment