English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial básico do JavaScript

Objeto do JavaScript

Função do JavaScript

DOM HTML JS

BOM do navegador JS

Tutorial básico do AJAX

Manual de referência do JavaScript

Número (Number) do JavaScript

JavaScript tem apenas um tipo de número, sem especificação separada para números inteiros e de ponto flutuante.

Portanto, os números podem ser escritos em JavaScript, com ou sem ponto decimal.

var a = 25; // Sem ponto decimal
var b = 80.05;  // Com ponto decimal
Teste e veja‹/›

Nesses dois casos, o tipo de dados é sempre um número, e é o mesmo, independentemente de o número ter ou não ponto decimal.

Pode-se usar a notação exponencial científica em JavaScript para abreviar números muito grandes ou muito pequenos, como nos exemplos a seguir:

let num1 = 957e8; // 95700000000
let num2 = 957e-8;// 0.00000957
Teste e veja‹/›

Os números do JavaScript são considerados precisos, no máximo15bits de número. Isso significa que o número será arredondado para o16bits após o arredondamento:

let num1 = 999999999999999; // O valor permanece inalterado 999999999999999
let num2 = 9999999999999999;// Arredondar para cima para 10000000000000000
Teste e veja‹/›

Representação interna do número

Diferente de outros idiomas, o JavaScript não define diferentes tipos de números, como inteiros, shorts, longs, float, etc.

Os números do JavaScript têm64Precisão de bits, também conhecida como dupla precisão.

A representação interna é baseada no IEEE 754Standard

64O bit está distribuído entre o sinal, o expoente e a casa decimal do número, conforme mostrado a seguir:

IdentifierExponentFraction
1 bit11 bit52 bit
Bit 63Bits 62–52Bits 51–0

Soma de números e concatenação de strings

Como mencionado nos capítulos anteriores:+Os operadores são usados para somar números e concatenar strings.

Se for número, soma os números. Se for string, concatena as strings.

Se somar dois números, o resultado será um número:

let x = 50;
let y = 10;
let z = x + y;  // z = 60 (um número)
Teste e veja‹/›

Se forem duas strings, o resultado será a concatenação de strings:

let x = "50";
let y = "10";
let z = x + y;  // z = 5010 (uma string)
Teste e veja‹/›

Se o número e a string, o resultado será a concatenação de strings:

let x = 50;
let y = "10";
let z = x + y;  // z = 5010 (uma string)
Teste e veja‹/›

Se a string e o número, o resultado será a concatenação de strings:

let x = "50";
let y = 10;
let z = x + y;  // z = 5010 (uma string)
Teste e veja‹/›

O JavaScript calcula a expressão da esquerda para a direita. Diferentes sequências podem gerar diferentes resultados.

No exemplo a seguir, primeiro50 + 10Somar, porque x e y são números, e então60 +"30” conectados, porque z é uma string:

let x = 50;
let y = 10;
let z = "30";
let sum = x + y + z;  // sum = 6030 (uma string)
Teste e veja‹/›

Um erro comum, esperando este resultado:60:

let x = 50;
let y = 10;
let z = "The sum is: " + x + y;
Teste e veja‹/›

Você pode usar parênteses para resolver o problema acima:

let x = 50;
let y = 10;
let z = "The sum is: " + (x + y);
Teste e veja‹/›

Strings numéricos e expressões matemáticas

Os strings do JavaScript podem conter valores numéricos.

  let x = 50;  // x é um número
  let y = "50";  // y é uma string

Se a string contiver um valor numérico, pode-se executar expressões matemáticas no JavaScript.

Pode executar a divisão:

let x = "50" / "10";  // x = 5
Teste e veja‹/›

Pode executar a multiplicação:

let x = "50" * "10";  // x = 500
Teste e veja‹/›

Pode executar a operação de exponenciação:

let x = "5" ** "3";  // x = 125
Teste e veja‹/›

Pode executar o incremento:

let x = "50";
x++; // x = 51
Teste e veja‹/›

Pode executar a subtração:

let x = "50" - "10";  // x = 40
Teste e veja‹/›

Não é possível executar a adição:

let x = "50" + "10";  // x = 5010
Teste e veja‹/›

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

JavaScript NaN-Número inválido

No JavaScript NaN, o palavrão indica que o número não é um número válido.

Se você tentar executar operações matemáticas com valores numéricos e não numéricos, NaN será retornado.

var x = 50 / "oldtoolbag.com";  // x = NaN (Not a Number)
Teste e veja‹/›

Mas, se a string contiver um valor numérico, você pode usar o JavaScript para executar expressões matemáticas:

var x = 50 / "10";  // x = 5
Teste e veja‹/›

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

var x = 50 / "oldtoolbag.com";
isNaN(x);// retorna true, porque x não é um número
Teste e veja‹/›

Atribuir um valor a uma variável NaN na operação NaN, mesmo que o outro operando seja um número legítimo, também causará esse valor:

var x = NaN;
var y = 27;
var z = x + y;  // z = NaN
Teste e veja‹/›

NaN é um número; typeof NaN retorna number:

typeof NaN;   // will return "number"
Teste e veja‹/›

Infinidade do JavaScript

Infinity (infinito positivo) ou-Infinity (infinito negativo) se o número calculado exceder o número máximo disponível no JavaScript, será retornado.

Para valores não definidos, também ocorrerão essas situações, por exemplo, ao dividir por zero:

var x = 5 / 0;   // será retornado infinito
var y = -5 / 0;  // será retornado negativo infinito
Teste e veja‹/›

Em termos técnicos, Infinity (infinito positivo) é exibido quando o número excede o número1.797693134862315E+308,ele representa o limite superior do JavaScript.

Da mesma forma-Infinity (infinito negativo) é exibido quando o número excede o limite inferior-1.797693134862316E+308。

Infinity é um número: typeof Infinity retorna number:

typeof Infinity;   // will return "number"
Teste e veja‹/›

O número Infinity também pode ser usado no loop:

var num = 5;
while (num != Infinity) { 
// O código aqui será executado até num = ∞
}
Teste e veja‹/›

Base do JavaScript

Por padrão, o JavaScript exibe números com base10éda basedecimal.

O número também pode ser representado em hexadecimal (base16),binário (base2)e octal (base8)representa.

O prefixo de número hexadecimal é 0x:

var x = 0xFF;  // x = 255
Teste e veja‹/›

O prefixo de número binário é 0b:

var x = 0b1111;// x = 15
Teste e veja‹/›

Não escreva um número começando com zero (por exemplo 0121)。Se o número for escrito com zeros à esquerda, o JavaScript interpretará o número como octal:

var x = 016;
Teste e veja‹/›

Você pode usar essatoString()método de2até36o número retorna o número.

hexadecimal paraBase16,decimal paraBase10,octal paraBase8,binário paraBase2

var num = 255;
num.toString(10);  // returns 255
num.toString(16);  // returns ff
num.toString(8);   // returns 377
num.toString(2);   // returns 11111111
Teste e veja‹/›

Primitivo e objeto numérico

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

var num = 50;

Mas também pode usar a palavra-chave new para definir números como objetos:

var num = new Number(50);

Para testar a diferença entre os dois, inicializaremos um primitivo numérico e um objeto numérico.

var num1 = 50;
var num2 = new Number(50);
typeof num1// returns number
typeof num2// returns object
Teste e veja‹/›

Atenção:Não crie números como objetos. Isso reduzirá a velocidade de execução e pode gerar alguns resultados inesperados.

Ao usar o operador ==, números são iguais:

var num1 = 50;
var num2 = new Number(50);
document.write(num1 == num2); // retorna true, porque num1e num2com valores iguais
Teste e veja‹/›

Ao usar o operador ===, números iguais não são iguais, porque o operador === espera valores e tipos iguais:

var num1 = 50;
var num2 = new Number(50);
document.write(num1 === num2); // retorna false, porque num1e num2com tipos diferentes
Teste e veja‹/›

Objetos não podem ser comparados:

var num1 = new Number(50);
var num2 = new Number(50);
document.write(num1 == num2); // retorna false, porque num1e num2São objetos diferentes
document.write(num1 === num2); // retorna false, porque num1e num2São objetos diferentes
Teste e veja‹/›

Atenção (==) e (===) entre si. A comparação de dois objetos JavaScript sempre retornará false.