Tutorial de JS

JS HOME Introdução JS JS Para onde Saída JS Declarações JS Sintaxe JS Comentários JS Variáveis ​​JS JS Let JS Const Operadores JS JS Aritmética Atribuição de JS Tipos de dados JS Funções JS Objetos JS Eventos JS Strings JS Métodos de string JS Pesquisa de String JS Modelos de String JS Números JS Métodos de número JS Matrizes JS Métodos de matriz JS Classificação de matriz JS Iteração de matriz JS Const da matriz JS Datas JS Formatos de data JS Métodos de obtenção de data JS Métodos de conjunto de datas JS JS Math JS Aleatório JS Booleanos Comparações JS Condições JS Interruptor JS Circuito JS para JS Loop Para Entrada JS Loop Para De JS Loop Enquanto Quebra de JS Iteráveis ​​JS Conjuntos JS Mapas JS Tipo JS de Conversão de tipo JS JS bit a bit JS RegExp Erros JS Escopo JS Içamento JS Modo estrito JS JS esta palavra-chave Função de seta JS Classes JS JS JSON Depuração JS Guia de estilo JS Práticas recomendadas de JS Erros de JS Desempenho JS Palavras reservadas JS

Versões JS

Versões JS JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS IE / Edge Histórico de JS

Objetos JS

Definições de objeto Propriedades do objeto Métodos de objeto Exibição de objetos Acessadores de objetos Construtores de objetos Protótipos de Objetos Iteráveis ​​de objeto Conjuntos de objetos Mapas de objetos Referência do objeto

Funções JS

Definições de função Parâmetros de função Invocação de função Chamada de Função Função Aplicar Fechamentos de Função

Classes JS

Introdução à aula Herança de classe Classe Estática

JS Assíncrono

Retornos de chamada JS JS Assíncrono Promessas JS JS Async/Aguardar

JS HTML DOM

Introdução ao DOM Métodos DOM Documento DOM Elementos DOM HTML DOM Formulários DOM CSS DOM Animações DOM Eventos DOM Ouvinte de eventos DOM Navegação DOM Nós DOM Coleções DOM Listas de nós DOM

BOM do navegador JS

Janela JS Tela JS Localização JS Histórico de JS Navegador JS Alerta pop-up JS Temporização JS Cookies JS

APIs da Web JS

Introdução à API da Web API de formulários da Web API de histórico da web API de armazenamento da Web API do trabalhador da Web API de busca da Web API de geolocalização da Web

JS AJAX

Introdução AJAX AJAX XML Http Solicitação AJAX Resposta AJAX Arquivo XML AJAX PHP AJAX ASP AJAX Banco de dados AJAX Aplicativos AJAX Exemplos AJAX

JS JSON

Introdução JSON Sintaxe JSON JSON x XML Tipos de dados JSON Análise JSON JSON Stringify Objetos JSON Matrizes JSON Servidor JSON JSON PHP HTML JSON JSON JSONP

JS x jQuery

Seletores jQuery HTML jQuery jQuery CSS jQuery DOM

Gráficos JS

Gráficos JS Tela JS JS Plotly JS Chart.js JS Google Chart JS D3.js

Exemplos JS

Exemplos JS JS HTML DOM Entrada HTML JS Objetos HTML JS Eventos HTML JS Navegador JS Editor JS Exercícios JS Teste JS Certificado JS

Referências JS

Objetos JavaScript Objetos HTML DOM


Números JavaScript


JavaScript tem apenas um tipo de número. Os números podem ser escritos com ou sem decimais.


Exemplo

let x = 3.14;    // A number with decimals
let y = 3;       // A number without decimals

Números extra grandes ou extra pequenos podem ser escritos com notação científica (expoente):

Exemplo

let x = 123e5;    // 12300000
let y = 123e-5;   // 0.00123


Números JavaScript são sempre ponto flutuante de 64 bits

Ao contrário de muitas outras linguagens de programação, JavaScript não define diferentes tipos de números, como inteiros, curtos, longos, de ponto flutuante etc.

Os números 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 (a fração) é armazenado nos bits 0 a 51, o expoente nos bits 52 a 62 e o sinal no bit 63:

Valor (também conhecido como Fração/Mantissa) Expoente Sinal
52 bits (0 - 51)  11 bits (52 - 62) 1 bit (63)

Precisão de inteiro

Números inteiros (números sem ponto ou notação de expoente) são precisos até 15 dígitos.

Exemplo

let x = 999999999999999;   // x will be 999999999999999
let y = 9999999999999999;  // y will be 10000000000000000

O número máximo de casas decimais é 17.

Precisão flutuante

A aritmética de ponto flutuante nem sempre é 100% precisa:

let x = 0.2 + 0.1;

Para resolver o problema acima, ajuda a multiplicar e dividir:

let x = (0.2 * 10 + 0.1 * 10) / 10;


Adicionando números e strings

AVISO !!

JavaScript usa o operador + para adição e concatenação.

Os números são adicionados. As strings são concatenadas.

Se você adicionar dois números, o resultado será um número:

Exemplo

let x = 10;
let y = 20;
let z = x + y;

Se você adicionar duas strings, o resultado será uma concatenação de strings:

Exemplo

let x = "10";
let y = "20";
let z = x + y;

Se você adicionar um número e uma string, o resultado será uma concatenação de strings:

Exemplo

let x = 10;
let y = "20";
let z = x + y;

Se você adicionar uma string e um número, o resultado será uma concatenação de strings:

Exemplo

let x = "10";
let y = 20;
let z = x + y;

Um erro comum é esperar que esse resultado seja 30:

Exemplo

let x = 10;
let y = 20;
let z = "The result is: " + x + y;

Um erro comum é esperar que esse resultado seja 102030:

Exemplo

let x = 10;
let y = 20;
let z = "30";
let result = x + y + z;

O interpretador JavaScript funciona da esquerda para a direita.

Primeiro 10 + 20 é adicionado porque x e y são ambos números.

Então 30 + "30" é concatenado porque z é uma string.


Strings Numéricas

As strings JavaScript podem ter conteúdo numérico:

let x = 100;         // x is a number

let y = "100";       // y is a string

O JavaScript tentará converter strings em números em todas as operações numéricas:

Isso funcionará:

let x = "100";
let y = "10";
let z = x / y;

Isso também funcionará:

let x = "100";
let y = "10";
let z = x * y;

E isso vai funcionar:

let x = "100";
let y = "10";
let z = x - y;

Mas isso não vai funcionar:

let x = "100";
let y = "10";
let z = x + y;

No último exemplo JavaScript usa o operador + para concatenar as strings.


NaN - Não é um número

NaNé uma palavra reservada JavaScript que indica que um número não é um número legal.

Tentar fazer aritmética com uma string não numérica resultará em NaN(Not a Number):

Exemplo

let x = 100 / "Apple";

No entanto, se a string contiver um valor numérico , o resultado será um número:

Exemplo

let x = 100 / "10";

Você pode usar a função JavaScript global isNaN() para descobrir se um valor não é um número:

Exemplo

let x = 100 / "Apple";
isNaN(x);

Cuidado com NaN. Se você usar NaNem uma operação matemática, o resultado também será NaN:

Exemplo

let x = NaN;
let y = 5;
let z = x + y;

Ou o resultado pode ser uma concatenação como NaN5:

Exemplo

let x = NaN;
let y = "5";
let z = x + y;

NaNé um número: typeof NaNretorna number:

Exemplo

typeof NaN;

Infinidade

Infinity(ou -Infinity) é o valor que o JavaScript retornará se você calcular um número fora do maior número possível.

Exemplo

let myNumber = 2;
// Execute until Infinity
while (myNumber != Infinity) {
  myNumber = myNumber * myNumber;
}

A divisão por 0 (zero) também gera Infinity:

Exemplo

let x =  2 / 0;
let y = -2 / 0;

Infinityé um número: typeof Infinityretorna number.

Exemplo

typeof Infinity;

Hexadecimal

JavaScript interpreta constantes numéricas como hexadecimais se forem precedidas por 0x.

Exemplo

let x = 0xFF;

Nunca escreva um número com zero à esquerda (como 07).
Algumas versões do JavaScript interpretam os números como octais se forem escritos com um zero à esquerda.

Por padrão, o JavaScript exibe números como decimais de base 10 .

Mas você pode usar o toString()método para gerar números da base 2 para a base 36 .

Hexadecimal é base 16 . Decimal é base 10 . Octal é base 8 . Binário é base 2 .

Exemplo

let myNumber = 32;
myNumber.toString(10);
myNumber.toString(32);
myNumber.toString(16);
myNumber.toString(8);
myNumber.toString(2);

Números JavaScript como objetos

Normalmente, os números JavaScript são valores primitivos criados a partir de literais:

let x = 123;

Mas os números também podem ser definidos como objetos com a palavra-chave new:

let y = new Number(123);

Exemplo

let x = 123;
let y = new Number(123);

Não crie objetos Number.

A newpalavra-chave complica o código e diminui a velocidade de execução.

Objetos numéricos podem produzir resultados inesperados:

Ao usar o ==operador, x e y são iguais :

let x = 500;
let y = new Number(500);

Ao usar o ===operador, x e y não são iguais .

let x = 500;
let y = new Number(500);

Observe a diferença entre (x==y)e (x===y).

(x == y) verdadeiro ou falso?

let x = new Number(500);
let y = new Number(500);

(x === y) verdadeiro ou falso?

let x = new Number(500);
let y = new Number(500);

Comparing two JavaScript objects always returns false.

Complete JavaScript Number Reference

For a complete Number reference, visit our:

Complete JavaScript Number Reference.

The reference contains descriptions and examples of all Number properties and methods.