English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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 decimalTeste 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.00000957Teste 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 10000000000000000Teste e veja‹/›
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:
Identifier | Exponent | Fraction |
---|---|---|
1 bit | 11 bit | 52 bit |
Bit 63 | Bits 62–52 | Bits 51–0 |
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‹/›
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 = 5Teste e veja‹/›
Pode executar a multiplicação:
let x = "50" * "10"; // x = 500Teste e veja‹/›
Pode executar a operação de exponenciação:
let x = "5" ** "3"; // x = 125Teste e veja‹/›
Pode executar o incremento:
let x = "50"; x++; // x = 51Teste e veja‹/›
Pode executar a subtração:
let x = "50" - "10"; // x = 40Teste e veja‹/›
Não é possível executar a adição:
let x = "50" + "10"; // x = 5010Teste e veja‹/›
Atenção:Se você adicionar duas strings, o resultado será a concatenação de strings.
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 = 5Teste 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úmeroTeste 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 = NaNTeste e veja‹/›
NaN é um número; typeof NaN retorna number:
typeof NaN; // will return "number"Teste e veja‹/›
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 infinitoTeste 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‹/›
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 = 255Teste e veja‹/›
O prefixo de número binário é 0b:
var x = 0b1111;// x = 15Teste 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 11111111Teste e veja‹/›
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 objectTeste 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 iguaisTeste 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 diferentesTeste 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 diferentesTeste e veja‹/›
Atenção (==) e (===) entre si. A comparação de dois objetos JavaScript sempre retornará false.