mozilla
Os seus resultados da pesquisa

    isNaN()

    Resumo

      A função insNAN () determina se o valor é NaN ou não. Tenha cuidado, essa função é quabrada. Você pode ficar interessado no Number.isNaN() que foi definido no ECMAScript 6 ou você pode usar typeof para determinar se o valor é Not-A-Number, NaN.

    Syntax

    isNaN(testValue)

    Parâmetros

    testValue
    O valor a ser testado.

    Descrição

    A necessidade da função isNaN

    Ao contrário de todas as outras possibilidades de valores no JavaScript, não é possivel confiar nos operadores de igualdade (== e ===) para determina se o valor é NaN ou não, porque ambos, NaN == NaN e NaN === NaN, terá como valor de retorno: false. Daí a necessidade da funçao isNAN.

    Origem dos valores NaN

    Os valores NaN são gerados quando operações aritiméticas tem como valores: undefined ou unrepresentable. Como valores, não fazem necessariamente condições de estouro. NaN também resulta da tentativa de coerção para valores numéricos, de valores não numéricos, para que o valor numérico primitivo seja disponível.

    Por exemplo, divida zero por zero e o resultado será NaN , mas se dividir outros números por zero ele não será.

    Comportamento confuso do caso especial

    Desde as primeiras versões da especificação da função isNaN , o seu comportamento para argumentos não numéricos tem sido confuso. Quando o argumento para a função isNaN não é do tipo Number, o valor é primeiro convertido para um número. O valor resultante é em seguida testada para determinar se se trata de { { jsxref ("Global_Objects / NaN " , " NaN " ) } } . Assim, para os não- números que quando forçado ao tipo numérico resultado em um valor numérico não- NaN válido (nomeadamente a cadeia vazia e primitivas booleanos , que quando forçada a dar valores numéricos zero ou um ), o "falso" valor retornado pode ser inesperado ; a cadeia vazia , por exemplo, é certamente " não é um número . " A confusão decorre do fato de que o termo , " não é um número " , tem um significado específico para os números representados como valores de ponto flutuante IEEE- 794 . A função deve ser interpretada como responder à pergunta: "é este valor, quando convertido para um valor numérico, um valor IEEE -794 ' não um número "?

    A próxima versão do ECMAScript (ES6) contém A função Number.isNaN(). Number.isNaN(x) Será a real forma para testar se x é NaN ou não. Mesmo com Number.isNaN, porém, o significado de NaN continua ser a precisão numérica, e não simplesmente, "não é um número = NaN, not a number". Paralelamente , na expressão Number.isNaN, a expressão (x != x) é a forma mais confiável para testar se a variável x é NaN ou não, assim o resultado não é sujeitado ao falso positivo que faz isNaN não ser confiável.

    Exemplos

    isNaN(NaN);       // true
    isNaN(undefined); // true
    isNaN({});        // true
    
    isNaN(true);      // false
    isNaN(null);      // false
    isNaN(37);        // false
    
    // strings
    isNaN("37");      // false: "37" is converted to the number 37 which is not NaN
    isNaN("37.37");   // false: "37.37" is converted to the number 37.37 which is not NaN
    isNaN("");        // false: the empty string is converted to 0 which is not NaN
    isNaN(" ");       // false: a string with spaces is converted to 0 which is not NaN
    
    // dates
    isNaN(new Date());                // false
    isNaN(new Date().toString());     // true
    
    // Esse é um falso positivo e é a razão para isNaN não seja totalmente confiável.
    isNaN("blabla")   // true: "blabla" é convertido para número. 
                      // A análise desse número falha e retorna NaN como resultado.
    

    Especificações

    Especificação Status Comentário
    ECMAScript 1ª Edição. Standard Definição inicial.
    ECMAScript 5.1 (ECMA-262)
    The definition of 'isNaN' in that specification.
    Standard  
    ECMAScript 6 (ECMA-262)
    The definition of 'isNaN' in that specification.
    Release Candidate  

    Compatibilidade com Browser

    Feature    Chrome Firefox (Gecko) Internet Explorer Opera Safari
    Suporte básico (Yes) (Yes) (Yes) (Yes) (Yes)
    Aplicação Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
    Suporte básico (Yes) (Yes) (Yes) (Yes) (Yes) (Yes)

    Veja também

    Etiquetas do documento e colaboradores

    Etiquetas: 
    Contributors to this page: teoli, SphinxKnight, nasviana
    Última atualização por: SphinxKnight,
    Esconder painel