O objecto JavaScript Number
é um objecto abstraído que te permite trabalhar com valores numéricos. Um objecto Number
é criado usando o constructor Number().
Constructor
new Number(valor);
Parâmetro
valor
- O valor numérico representado pelo objecto que está a ser criado.
Descrição
Os usos mais comuns para o objecto Number
são:
Propriedades
Number.EPSILON
- O intervalo mais pequeno entre dois números representáveis.
Number.MAX_SAFE_INTEGER
- O maior inteiro bem representado em JavaScript (
253 - 1
). Number.MAX_VALUE
- O maior número positivo representável.
Number.MIN_SAFE_INTEGER
- O menor inteiro bem representado em JavaScript (
-(253 - 1)
). Number.MIN_VALUE
- O menor número positivo representável - ou seja, o número positivo mais próximo de zero (sem ser o zero).
Number.NaN
- Valor especial para representar um "não número".
Number.NEGATIVE_INFINITY
- Valor especial para representar o infinito negativo; retornado em caso de overflow.
Number.POSITIVE_INFINITY
- Valor especial para representar o infinito; retornado em caso de overflow.
Number.prototype
- Permite adicionar propriedades ao objecto
Number
.
Métodos
Number.isNaN()
- Determina se o valor passado é NaN.
Number.isFinite()
- Determina se o valor passado é um número finito.
Number.isInteger()
- Determina se o número passado é um inteiro.
Number.isSafeInteger()
- Determina se o valor passado é um inteiro bem representado (número entre
-(253 - 1)
e253 - 1
). Number.toInteger()
Usado para avaliar o valor passado e convertê-lo num inteiro (ouInfinity
), mas foi removido.Number.parseFloat()
- O valor é o mesmo que
parseFloat()
de um objecto global. Number.parseInt()
- O valor é o mesmo que
parseInt()
de um objecto global.
Instâncias de Number
Todas as instâncias de Number
herdam de Number.prototype
. O objecto protótipo (prototype) do constructor de Number
pode ser modificado para afectar todas as instâncias de Number
.
Métodos
Number.prototype.toExponential()
- Returns a string representing the number in exponential notation.
Number.prototype.toFixed()
- Returns a string representing the number in fixed-point notation.
Number.prototype.toLocaleString()
- Returns a string with a language sensitive representation of this number. Overrides the
Object.prototype.toLocaleString()
method. Number.prototype.toPrecision()
- Returns a string representing the number to a specified precision in fixed-point or exponential notation.
Number.prototype.toSource()
- Returns an object literal representing the specified
Number
object; you can use this value to create a new object. Overrides theObject.prototype.toSource()
method. Number.prototype.toString()
- Returns a string representing the specified object in the specified radix (base). Overrides the
Object.prototype.toString()
method. Number.prototype.valueOf()
- Returns the primitive value of the specified object. Overrides the
Object.prototype.valueOf()
method.
Exemplos
Usar o objecto Number para atribuír valores a variáveis numéricas
O seguinte exemplo usa as propriedades do objecto Number
para atribuír valores a várias variáveis numéricas:
var biggestNum = Number.MAX_VALUE;
var smallestNum = Number.MIN_VALUE;
var infiniteNum = Number.POSITIVE_INFINITY;
var negInfiniteNum = Number.NEGATIVE_INFINITY;
var notANum = Number.NaN;
Limite inteiro para Number
O seguinte exemplo mostra o mínimo e máximo valores inteiros que podem ser representados como um objecto Number
(para mais detalhes, consulta o standard do ECMAScript, capítulo 8.5 The Number Type):
var biggestInt = 9007199254740992;
var smallestInt = -9007199254740992;
Ao analisar dados que foram serializados para JSON, os valores inteiros fora deste limite são expectáveis de ficar corrompidos quando o analisador de JSON os tentar converter para o tipo Number
. Como possível alternativa, usa String
.
Usar Number para converter um objecto Date
O seguinte exemplo converte o objecto Date
num valor numérico usando Number
como função:
var d = new Date('December 17, 1995 03:24:00');
console.log(Number(d));
Este código imprime "819199440000".
Converter strings numéricas para números
Number("123") // 123
Number("") // 0
Number("0x11") // 17
Number("0b11") // 3
Number("0o11") // 9
Number("foo") // NaN
Number("100a") // NaN
Especificações
Especificação | Estado | Comentário |
---|---|---|
ECMAScript 1st Edition (ECMA-262) | Standard | Definição inicial. Implementado em JavaScript 1.1. |
ECMAScript 5.1 (ECMA-262) The definition of 'Number' in that specification. |
Standard | |
ECMAScript 2015 (6th Edition, ECMA-262) The definition of 'Number' in that specification. |
Standard | Adicionados novas propriedades e métodos: (EPSILON , isFinite , isInteger , isNaN , parseFloat , parseInt ) |
Compatibilidade dos browsers
Funcionalidade | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Suporte básico | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
Funcionalidade | Android | Chrome para Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Suporte básico | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |