English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
JavaScript tiene solo un tipo de número, sin especificación separada de enteros y números de coma flotante.
Por lo tanto, los números se pueden escribir en JavaScript, con o sin punto decimal.
var a = 25; // Sin punto decimal var b = 80.05; // Con punto decimalPrueba para ver‹/›
En estos dos casos, el tipo de dato es un número y es el mismo, sin importar si el número tiene un punto decimal o no.
Se puede usar la notación exponencial científica en JavaScript para abreviar números muy grandes o muy pequeños, como se muestra en los siguientes ejemplos:
let num1 = 957e8; // 95700000000 let num2 = 957e-8;// 0.00000957Prueba para ver‹/›
Los números en JavaScript se consideran precisos, hasta15bits numéricos. Esto significa que el número se redondeará al llegar al16bits después de redondear:
let num1 = 999999999999999; // El valor se mantiene sin cambios 999999999999999 let num2 = 9999999999999999;// Redondea hacia arriba hasta 10000000000000000Prueba para ver‹/›
A diferencia de otros lenguajes, JavaScript no define diferentes tipos de números, como enteros, shorts, longs, flotantes, etc.
Los números de JavaScript tienen64Precisión de bits, lo que también se conoce como doble precisión.
La representación interna se basa en el IEEE 754Estándar.
64Los bits se distribuyen entre el signo, el exponente y el decimal del número, como se muestra a continuación:
Identificador | Expone | Fracción |
---|---|---|
1 bit | 11 bit | 52 bit |
Bit 63 | Bits 62–52 | Bits 51–0 |
Como se mencionó en el capítulo anterior,+Los operadores se utilizan para la suma de números y la concatenación de cadenas.
Si es un número, se suman los números. Si es una cadena, se concatenan las cadenas.
Si se suman dos números, el resultado será un número:
let x = 50; let y = 10; let z = x + y; // z = 60 (un número)Prueba para ver‹/›
Si son dos cadenas, el resultado será la concatenación de cadenas:
let x = "50"; let y = "10"; let z = x + y; // z = 5010 (una cadena)Prueba para ver‹/›
Si se concatenan un número y una cadena, el resultado será la concatenación de cadenas:
let x = 50; let y = "10"; let z = x + y; // z = 5010 (una cadena)Prueba para ver‹/›
Si se concatenan una cadena y un número, el resultado será la concatenación de cadenas:
let x = "50"; let y = 10; let z = x + y; // z = 5010 (una cadena)Prueba para ver‹/›
JavaScript calcula la expresión de izquierda a derecha. Diferentes secuencias pueden producir diferentes resultados.
En el siguiente ejemplo, primero se50 + 10Se suman, porque x y y son números, luego se60 +"30” se unen, porque z es una cadena:
let x = 50; let y = 10; let z = "30"; let sum = x + y + z; // sum = 6030 (una cadena)Prueba para ver‹/›
Un error común, se espera que este resultado sea60:
let x = 50; let y = 10; let z = "The sum is: " + x + y;Prueba para ver‹/›
Puede usar paréntesis para resolver el problema anterior:
let x = 50; let y = 10; let z = "The sum is: " + (x + y);Prueba para ver‹/›
Las cadenas de texto de JavaScript pueden contener valores numéricos.
let x = 50; // x es un número let y = "50"; // y es una cadena de texto
Si la cadena de texto contiene un valor numérico, se puede realizar una expresión matemática en JavaScript.
Se puede realizar la división:
let x = "50" / "10"; // x 5Prueba para ver‹/›
Se puede realizar la multiplicación:
let x = "50" * "10"; // x 500Prueba para ver‹/›
Se puede realizar la operación de potencia:
let x = "5" ** "3"; // x 125Prueba para ver‹/›
Se puede realizar el aumento:
let x = "50"; x++; // x 51Prueba para ver‹/›
Se puede realizar la sustracción:
let x = "50" - "10"; // x 40Prueba para ver‹/›
No se puede realizar la adición:
let x = "50" + "10"; // x 5010Prueba para ver‹/›
Atención:Si se suman dos cadenas de texto, el resultado será la concatenación de cadenas.
En JavaScript NaN, las palabras reservadas representan que el número no es un número válido.
Si intenta realizar operaciones matemáticas con valores numéricos y no numéricos, NaN se devolverá.
var x = 50 / "oldtoolbag.com"; // x = NaN (No es un número)Prueba para ver‹/›
pero, si la cadena contiene un valor numérico, se puede usar JavaScript para ejecutar expresiones matemáticas:
var x = 50 / "10"; // x 5Prueba para ver‹/›
Puede usar la función global de JavaScript isNaN()una función para determinar si un valor es un número:
var x = 50 / "oldtoolbag.com"; isNaN(x);// devolverá true porque x no es un númeroPrueba para ver‹/›
asignar un valor a la variable NaN utilizada en la operación, incluso si el otro operando es un número legítimo, también causará el valor:
var x = NaN; var y = 27; var z = x + y; // z = NaNPrueba para ver‹/›
NaN es un número; typeof NaN devuelve number:
typeof NaN; // devolverá "número"Prueba para ver‹/›
Infinity (infinito positivo) o-Infinity (infinito negativo) si el número excede el número máximo disponible en JavaScript.
Para valores no definidos, también se producirán estos casos, por ejemplo al dividir por cero:
var x = 5 / 0; // devolverá el infinito var y = -5 / 0; // devolverá el infinito negativoPrueba para ver‹/›
En términos técnicos, Infinity (infinito positivo) se muestra cuando el número excede el número1.797693134862315E+308,que representa el límite superior en JavaScript.
Del mismo modo,-Infinity (infinito negativo) se muestra cuando el número excede el límite inferior-1.797693134862316E+308.
Infinity es un número: typeof Infinity devuelve number:
typeof Infinity; // devolverá "número"Prueba para ver‹/›
El número Infinity también se puede usar en el bucle:
var num = 5; while (num != Infinity) { // Este código se ejecutará hasta que num = ∞ }Prueba para ver‹/›
Por defecto, JavaScript muestra los números con formato10esde la basedecimal.
El número también se puede escribir en hexadecimal (base16),binario (base2)y octal (base8)representa.
El prefijo de un número hexadecimal es 0x:
var x = 0xFF; // x 255Prueba para ver‹/›
El prefijo de un número binario es 0b:
var x = 0b1111;// x 15Prueba para ver‹/›
No escriba un número que comience con cero (por ejemplo 0121)。Si se escribe un número con ceros a la izquierda, JavaScript interpretará el número como octal:
var x = 016;Prueba para ver‹/›
Puede usar estatoString()método desde2a36devuelve el número.
hexadecimal deBase16,decimal deBase10,octal deBase8,binario deBase2.
var num = 255; num.toString(10); // returns 255 num.toString(16); // returns ff num.toString(8); // returns 377 num.toString(2); // returns 11111111Prueba para ver‹/›
Por lo general, los números JavaScript se crean como valores originales a partir de texto:
var num = 50;
Pero también se puede definir un número como objeto utilizando la palabra clave new:
var num = new Number(50);
Para probar la diferencia entre ambos, inicializaremos un primitivo numérico y un objeto numérico.
var num1 = 50; var num2 = new Number(50); typeof num1// returns number typeof num2// returns objectPrueba para ver‹/›
Atención:No cree números como objetos. Esto reducirá la velocidad de ejecución y puede producir algunos resultados inesperados.
Al usar el operador ==, un número es igual:
var num1 = 50; var num2 = new Number(50); document.write(num1 == num2); // regresa true, porque num1y num2Tienen valores igualesPrueba para ver‹/›
Al usar el operador ===, números iguales no son iguales porque el operador === espera valores y tipos iguales:
var num1 = 50; var num2 = new Number(50); document.write(num1 === num2); // regresa false, porque num1y num2Tienen diferentes tiposPrueba para ver‹/›
No se pueden comparar objetos:
var num1 = new Number(50); var num2 = new Number(50); document.write(num1 == num2); // regresa false, porque num1y num2Son objetos diferentes document.write(num1 === num2); // regresa false, porque num1y num2Son objetos diferentesPrueba para ver‹/›
Tenga en cuenta la diferencia entre (==) y (===). Al comparar dos objetos JavaScript siempre regresará false.