Movatterモバイル変換


[0]ホーム

URL:


  1. Tecnologia Web para desenvolvedores
  2. JavaScript
  3. Guia JavaScript
  4. Números e datas

Esta página foi traduzida do inglês pela comunidade.Saiba mais e junte-se à comunidade MDN Web Docs.

View in EnglishAlways switch to English

Números e datas

Este capítulo apresenta como utilizar números e datas em JavaScript.

Números

Em Javascript, todos os números são implementados emdouble-precision 64-bit binary format IEEE 754 (Por exemplo, um número entre -(253 -1) e 253 -1).Não havendo especificação de tipo Integer. Além de ser capaz de representar números de ponto flutuante, o tipo de número tem três valores simbólicos:+Infinity,-Infinity, andNaN (not-a-number). Veja tambémEstruturas e Tipos de Dados em Javascript em contexto com outros tipos primitivos em JavaScript.

Você pode usar quatro tipos de números literais: decimal, binário, octal, e hexadecimal.

Números Decimais

js
1234567890;42;// Cuidado quando usar zeros à esquerda:0888; // 888 interpretado como decimal0777; // interpretado como octal  em modo no-strict (511 em decimal)

Note que literais decimais podem começar com zero (0) seguido por outro digito decimal, porém se o próximo dígito depois do primeiro zero for menor do que 8, o número será analisado como um número octal.

Números Binários

A sintaxe para números Binários, usa um zero à esquerda seguido de uma letra minúscula ou maiúscula "B" (0b or0B). Se os dígitos depois de 0b não forem 0 ou 1, a seguinte exceçãoSyntaxError é lançada: "Missing binary digits after 0b".

js
var FLT_SIGNBIT = 0b10000000000000000000000000000000; // 2147483648var FLT_EXPONENT = 0b01111111100000000000000000000000; // 2139095040var FLT_MANTISSA = 0b00000000011111111111111111111111; // 8388607

Números octais

A sintaxe dos números octais usa um zero na frente. Se os dígitos depois do 0 estiverem fora do alcance 0 a 7, o número será interpretado como um número decimal.

js
var n = 0755; // 493var m = 0644; // 420

Modo estrito no ECMAScript 5 proíbe a sintaxe octal. A sintaxe Octal não é parte do ECMAScript 5, mas é suportada por todos os navegadores prefixando o número octal com zero:0644 === 420 e"\045" === "%". Em ECMAScript 6 números Octais são suportados prefixando o número com "0o" isto é.

js
var a = 0o10; // ES6: Octal

Numeros hexadecimais

A sintaxe numérica Hexadecimal usa um 0 na frente seguido por uma letra "X" maiúscula ou minúscula (0x ou0X). Se os dígidos depois do 0x estiverem fora do alcance (0123456789ABCDF), o seguinte erro de sintaxe (SyntaxError) ocorrerá: "Identifier starts immediately after numeric literal" (O identificador começa imediatamente depois do literal numérico).

js
0xfffffffffffffffff; // 2951479051793528300000x123456789abcdef; // 819855292164869000xa; // 10

Exponenciação

js
1e3; // 10002e6; // 20000000.1e2; // 10

Objeto Number

Um objeto built-inNumber tem propriedades para constantes numéricas, tais como valor máximo, não número e infinito. Você não pode alterar os valores dessas propriedades e elas são usadas assim:

js
var maiorNum = Number.MAX_VALUE; //Valor máximovar menorNum = Number.MIN_VALUE; //Valor mínimovar infiniteNum = Number.POSITIVE_INFINITY; //Infinito positivovar negInfiniteNum = Number.NEGATIVE_INFINITY; //Infinito negativovar notANum = Number.NaN; //Não é numeral

Você sempre se refere a uma propriedade do objeto predefinidoNumber como mostrado acima, e não como uma propriedade de um objetoNumber que você mesmo criou.

A tabela à seguir sumariza as propriedades do objetoNumber.

PropriedadeDescrição
Number.MAX_VALUEO maior número representável.
Number.MIN_VALUEO menor número representável.
Number.NaNValor "not a number" especial
Number.NEGATIVE_INFINITYValor especial infinito negativo; retornado em overflow
Number.POSITIVE_INFINITYValor especial infinito positivo; retornado em overflow
Number.EPSILONDiferença entre um e o menor valor maior do que um que pode ser representado como umNumber.
Number.MIN_SAFE_INTEGERMínimo safe integer em JavaScript.
Number.MAX_SAFE_INTEGERMáximo safe integer em JavaScript.
MétodoDescrição
Number.parseFloat()Analisa um argumento string e retorna um número float. O mesmo que a função globalparseFloat().
Number.parseInt()Analisa um argumento string e retorna um inteiro da raiz ou base especificada. O mesmo que a função globalparseInt().
Number.isFinite()Determina se o valor passado é um número finito.
Number.isInteger()Determina se o valor passado é um inteiro.
Number.isNaN()Determina se o valor passado éNaN. A versão mais robusta da originalisNaN().
Number.isSafeInteger()Determina se o valor passado é um safe integer.

O protótipoNumber provê métodos para resgatar informações de objetosNumber em vários formatos. A tabela a seguir sumariza os métodos deNumber.prototype.

MétodoDescrição
toExponential()Retorna uma string representando o número em uma notação exponencial.
toFixed()Retorna uma string representando o número em notação com ponto-fíxo.
toPrecision()Retorna uma string representando o número em uma precisão especificada na notação de ponto-fíxo.

Objeto Math

O objetoMath tem propriedades e métodos para constantes matemáticas e funções. Por exemplo, oPI do objeto Math tem o valor de pi (3,141...), que você usaria em uma aplicação como

js
Math.PI;

Similarmente, funções matemáticas padrão são métodos do Math. Isto inclui funções trigonométricas, logarítmicas, exponenciais, e outras funções. Por exemplo, se você quiser usar a função trigonométrica seno, basta escrever

js
Math.sin(1.56);

Note que todos os métodos trigonométricos pegam argumentos em radianos.

A tabela a seguir sumariza os métodos do objeto Math.

MétodoDescrição
abs()Valor absoluto
sin(),cos(),tan()Funções trigonométricas padrão; Argumentos em radianos
asin(),acos(),atan(),atan2()Funções trigonométricas inversas; retorna valores em radianos
sinh(),cosh(),tanh()Funções trigonométricas hiperbólicas; retorna valores em radianos.
asinh(),acosh(),atanh()Funções trigonométricas hiperbólicas inversas; retorna valores em radianos.
pow(),exp(),expm1(),log10(),log1p(),log2()Funções exponenciais e logarítmicas.
floor(),ceil()Retorna o maior/menor inteiro que é menor/maior inteiro que ou igual ao argumento.
min(),max()Retorna menor ou maior (respectivamente) de uma lista separada por vírgula de argumentos numéricos
random()Retorna um número aleatório entre 0 e 1.
round(),fround(),trunc(),Funções de arredondamento e truncamento.
sqrt(),cbrt(),hypot()Raiz quadrada, raiz cúbica, raiz quadrada da soma de argumentos ao quadrado.
sign()O sinal de um número, indicando se o número é positivo, negativo ou zero.
clz32(),imul()Número de zeros à esquerda na representação binária de 32-bits. The result of the C-like 32-bit multiplication of the two arguments.

Diferentemente de muitos outros objetos, você nunca cria um objeto Math por conta própria. Você sempre deve utilizar o objeto Math nativo.

Objeto Date

JavaScript não possui dados do tipo data. No entanto, você pode usar o objetoDate e seus métodos para trabalhar com datas e horas nas suas aplicações. O objeto Date tem um grande número de métodos para setar, recuperar e manipular datas. Ele não tem nenhuma propriedade.

JavaScript manipula datas de maneira semelhante ao Java. As duas linguagens tem muitos dos mesmos métodos para lidar com datas e ambas armazenam datas como números em milisegundos, desde 1 de janeiro de 1970, às 00:00:00 ( January 1, 1970, 00:00:00).

A abrangência do objeto Date é de -100,000,000 dias até 100,000,000 dias relativos a 01 de janeiro de 1970 UTC.

Para criar um objeto Date:

js
var dateObjectName = new Date([parameters]);

ondedateObjectName é o nome do objeto Date que está sendo criado; ele pode ser um novo objeto ou uma propriedade de um objeto existente.

A chamada de Date sem a palavra reservadanew, simplesmente converte a data para uma representação dela como string.

Osparâmetros do código acima podem ser qualquer um a seguir:

  • Nada: cria a data e hora de hoje. Por exemplo,today = new Date();.
  • Uma string representando uma data da seguinte forma: "Mês dia, ano, horas:minutos:segundos". Por exemplo,Xmas95 = new Date("25 de dezembro de 1995, 13:30:00"). Se você omitir as horas, minutos ou segundos, o valor será setado para zero.
  • Um conjunto de valores inteiros para ano, mês e dia. Por exemplo,var Xmas95 = new Date(1995, 11, 25).
  • Um conjunto de valores inteiros par ano, mês, dia, hora, minuto e segundos. Por exemplo,var Xmas95 = new Date(1995, 11, 25, 9, 30, 0);.

Métodos do objeto Date

Os métodos do objeto Date para manipular data e hora pertencem às seguintes categorias:

  • Métodos "set", para setar valores de data e hora em objetos Date.
  • Métodos "get", para recuperar valores de data e hora de objetos Date.
  • Métodos "to", para retornar valores de string de objetos Date.
  • Métodos parse e UTC, para parsear string de Data.

Com os métods "get" e "set", você pode recuperar e setar segundos, minutos, horas, dia e mês, dia da semana, meses e anos, separadamente. Existe um métodogetDay que retorna o dia da semana, mas não existe um métodosetDay correspondente, porque o dia da semana é setado automaticamente. Estes métodos utilizam números inteiros para representar estes valores da seguinte maneira:

  • Segundos e minutos: de 0 a 59
  • Horas: de 0 a 23
  • Dia: 0 (Domingo) a 6 (Sábado)
  • Data: 1 a 31 (dia do mês)
  • Meses: 0 (Janeiro) a 11 (Dezembro)
  • Ano: anos desde 1900

Por exemplo, suponha que você queira definir a seguinite data:

js
var Xmas95 = new Date("December 25, 1995");

EntãoXmas95.getMonth() retorna 11 eXmas95.getFullYear() retorna 1995.

Os métodosgetTime esetTime são úteis para comparar datas. O métodogetTime retorna o número dos milisegundos desde 1 de janeiro de 1970, às 00:00:00 para um objeto Date.

Por exemplo, o código a seguir mostra os números dos dias que ainda faltam do ano vigente:

js
var hoje = new Date();var fimAno = new Date(1995, 11, 31, 23, 59, 59, 999); // Seta dia e mêsfimAno.setFullYear(hoje.getFullYear()); // Seta o ano para esse anovar msPorDia = 24 * 60 * 60 * 1000; // Quantidade de milisegundos por diavar diasRestantes = (fimAno.getTime() - hoje.getTime()) / msPorDia;var diasRestantes = Math.round(diasRestantes); //retorna os dias restantes no ano

Este exemplo cria um objeto Date chamadohoje que contém a data de hoje. Ele, então, cria o objeto Date chamadofimAnoe seta o ano para o ano vigente. Então, usando o número de milisegundos por dia, ele computa o número de dias entre hoje efimAno, usandogetTime e arredondando os números de dias.

O métodoparse é útil para associar valores de strings de data para objetos Date existentes. Por exemplo, o código a seguir usaparse esetTime para associar um valor de data ao objetoIPOdate:

js
var IPOdate = new Date();IPOdate.setTime(Date.parse("Aug 9, 1995"));

No exemplo a seguir, a funçãoJSClock() retorna o tempo no formato de um relógio digital.

js
function JSClock() {  var tempo = new Date();  var hora = tempo.getHours();  var minuto = tempo.getMinutes();  var segundo = tempo.getSeconds();  var temp = "" + (hora > 12 ? hora - 12 : hora);  if (hora == 0) temp = "12";  temp += (minuto < 10 ? ":0" : ":") + minuto;  temp += (segundo < 10 ? ":0" : ":") + segundo;  temp += hora >= 12 ? " P.M." : " A.M.";  return temp;}

A funçãoJSClock primeiro cria um objeto newDate chamado tempo; já que nenhum argumento é passado,tempo é criado com data e hora atuais. Ela então chama os métodosgetHours,getMinutes egetSeconds e associa o valor à hora, minuto e segundo atuais à hora, minuto e segundo.

As próximas quatro declarações constroem uma string baseada em time. A primeira declaração cria uma variáveltemp, associando um valor utilizando uma expressão condicional; se hora é maior que 12, (hora - 12), senão simplesmente hora, a não ser que hora seja 0 que, nesse caso, será 12.

A próxima declaração anexa um valorminuto atemp. Se o valor de minuto for menos que 10, a expressão condicional acrescenta uma string com um 0 na frente; senão ela acrescenta uma string com dois pontos. Então a declaração anexa um valorsegundo atemp do mesmo jeito.

Finalmente, a expressão condicional anexa "P.M." atemp sehora for 12 ou maior; senão ela anexa "A.M." atemp.

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp