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

Tutoriales básicos de JavaScript

Objetos de JavaScript

Funciones de JavaScript

DOM HTML JS

BOM del navegador JS

Tutoriales básicos de AJAX

Manual de referencia de JavaScript

Número (Number) de JavaScript

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 decimal
Prueba 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.00000957
Prueba 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 10000000000000000
Prueba para ver‹/›

La representación interna de los números

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:

IdentificadorExponeFracción
1 bit11 bit52 bit
Bit 63Bits 62–52Bits 51–0

suma de números y concatenación de cadenas

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‹/›

Cadenas de números y expresiones matemáticas

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 5
Prueba para ver‹/›

Se puede realizar la multiplicación:

let x = "50" * "10";  // x 500
Prueba para ver‹/›

Se puede realizar la operación de potencia:

let x = "5" ** "3";  // x 125
Prueba para ver‹/›

Se puede realizar el aumento:

let x = "50";
x++; // x 51
Prueba para ver‹/›

Se puede realizar la sustracción:

let x = "50" - "10";  // x 40
Prueba para ver‹/›

No se puede realizar la adición:

let x = "50" + "10";  // x 5010
Prueba para ver‹/›

Atención:Si se suman dos cadenas de texto, el resultado será la concatenación de cadenas.

JavaScript NaN-Número ilegal

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 5
Prueba 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úmero
Prueba 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 = NaN
Prueba para ver‹/›

NaN es un número; typeof NaN devuelve number:

typeof NaN;   // devolverá "número"
Prueba para ver‹/›

Infinito de JavaScript

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 negativo
Prueba 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‹/›

Base de JavaScript

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 255
Prueba para ver‹/›

El prefijo de un número binario es 0b:

var x = 0b1111;// x 15
Prueba 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 11111111
Prueba para ver‹/›

Primitivo numérico y objeto numérico

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 object
Prueba 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 iguales
Prueba 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 tipos
Prueba 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 diferentes
Prueba para ver‹/›

Tenga en cuenta la diferencia entre (==) y (===). Al comparar dos objetos JavaScript siempre regresará false.