JavaScript tem apenas um tipo de number .
Numbers pode ser escrito com ou sem casas decimais.
Números de JavaScript
JavaScript numbers pode ser escrito com ou sem casas decimais:
Exemplo
var x = 34.00; // A number with decimals
var y = 34; // A number without decimals
Extra pequenos números grandes ou extra pode ser escrito com notação científica (expoente):
Exemplo
var x = 123e5; // 12300000
var y = 123e-5; // 0.00123
Números JavaScript são sempre 64-bit de ponto flutuante
Ao contrário de muitas outras linguagens de programação, JavaScript não define tipos diferentes de números, como números inteiros, curto, longo, de ponto flutuante etc.
número de JavaScript são sempre armazenados como números de ponto flutuante de precisão dupla, seguindo o padrão internacional IEEE 754.
Este formato armazena números em 64 bits, onde o número (fração) é armazenado em bits 0-51, o expoente em bits 52 a 62, e o sinal no bit 63:
Valor (aka Fração / Mantissa) | Expoente | Placa |
---|---|---|
52 bits (0 - 51) | 11 bits (52 - 62) | 1 bit (63) |
Precisão
Inteiros (números sem um período ou notação expoente) são consideradas precisas até 15 dígitos.
Exemplo
var x = 999999999999999; // x will be 999999999999999
var y = 9999999999999999; // y will be 10000000000000000
Tente você mesmo " O número máximo de decimais é de 17, mas a aritmética de ponto flutuante não é sempre 100% exato:
Para resolver o problema acima, ele ajuda a multiplicar-se e dividir:
hexadecimal
JavaScript interpreta constantes numéricas como hexadecimal se forem precedidos por 0x.
Nunca escreva um número com um zero à esquerda (como 07).
Algumas versões de JavaScript interpretar números como octal se eles são escritos com um zero à esquerda.
Por padrão, Javascript exibe números como base de 10 casas decimais.
Mas você pode usar o toString() método para números de saída como base 16 (hex), base 8 (octal), ou base 2 (binário).
Exemplo
var myNumber = 128;
myNumber.toString(16); // returns 80
myNumber.toString(8); // returns 200
myNumber.toString(2); // returns 10000000
Tente você mesmo " Infinidade
Infinito (ou -Infinity) é o valor JavaScript retornará se você calcular um número fora o maior número possível.
Exemplo
var
myNumber = 2;
while (myNumber != Infinity) {
// Execute until Infinity
myNumber = myNumber * myNumber;
}
Tente você mesmo " Divisão por 0 (zero) também gera Infinito:
Exemplo
var x = 2 / 0;
// x will be Infinity
var y = -2 / 0;
// y will be -Infinity
Tente você mesmo " O infinito é um número: typeOf Infinito retorna número.
NaN - Não é um número
NaN é uma palavra reservada JavaScript indicando que um valor não é um número.
Tentando fazer aritmética com uma string não numérica resultará em NaN (não um número):
No entanto, se a cadeia contém um valor numérico, o resultado será um número:
Você pode usar a função JavaScript global isNaN() para descobrir se um valor é um número.
Exemplo
var x = 100 / "Apple";
isNaN(x); // returns true because
x is Not a Number
Tente você mesmo " Atente para NaN. Se você usar NaN em uma operação matemática, o resultado também será NaN:
Ou o resultado pode ser uma concatenação:
NaN é um número, e typeof NaN retorna número:
Números podem ser objetos
Normalmente números JavaScript são valores primitivos criado a partir de literais: var x = 123
Mas os números também podem ser definidos como objetos com a palavra-chave new: var y = new Number(123)
Exemplo
var x = 123;
var y = new Number(123);
//
typeof x returns number
//
typeof y returns object
Tente você mesmo " Não crie objetos Number. Ele retarda a velocidade de execução.
A new palavra-chave complica o código. Isso pode produzir alguns resultados inesperados:
Ao usar o == operador de igualdade, igual número parece igual:
Exemplo
var x = 500;
var y = new Number(500);
// (x == y) is true because x and y have equal values
Tente você mesmo " Ao usar o operador de igualdade ===, números iguais não são iguais, porque o operador === espera que a igualdade em ambos os tipo e valor.
Exemplo
var x = 500;
var y = new Number(500);
// (x === y) is false because x and y have different types
Tente você mesmo " Ou ainda pior. Os objetos não podem ser comparados:
Exemplo
var x = new Number(500);
var y = new Number(500);
// (x == y) is false because objects cannot be compared
Tente você mesmo " JavaScript objectos não podem ser comparados.
Teste-se com exercícios!
Exercício 1 » Exercício 2» Exercício 3 » Exercício 4»