Comprendiendo los tipos de datos en JavaScript

Introducción

Los tipos de datos se utilizan para clasificar un tipo particular de datos en los lenguajes de programación. Por ejemplo, un número y una cadena de caracteres son tipos de datos diferentes que serán tratados de manera diferente por JavaScript.

Esto es importante porque el tipo de datos específico que uses determinará qué valores puedes asignarle y qué puedes hacer con él. Es decir, para poder realizar operaciones con variables en JavaScript, es importante entender el tipo de datos de cualquier variable dada.

En este tutorial, repasaremos cómo funcionan los tipos de datos en JavaScript, así como los tipos de datos importantes nativos del lenguaje. Esta no es una investigación exhaustiva de los tipos de datos, pero te ayudará a familiarizarte con las opciones disponibles en JavaScript.

Tipo de Datos Dinámico

JavaScript tiene tipos de datos dinámicos, lo que significa que la comprobación de tipos se realiza en tiempo de ejecución en lugar de en tiempo de compilación. Los tipos de datos de Python también son dinámicamente tipados.

Con lenguajes de tipado dinámico, una variable del mismo nombre puede usarse para contener diferentes tipos de datos.

Por ejemplo, la variable t, definida como una variable por la palabra clave let (nota que let mantiene una variable dada limitada en alcance), puede asignarse para contener diferentes tipos de datos, o puede inicializarse pero dejarse sin definir:

let t = 16;			// t es un número
let t = "Teresa";	// t es una cadena de texto
let t = true;		// t es un booleano
let t;				// t no está definido

Cada una de las variables t anteriores puede ser establecida para cualquier tipo de datos disponible en JavaScript; no es necesario declarar explícitamente un tipo de datos antes de que se utilicen.

Números

JavaScript tiene solo un tipo de número, no hay una designación separada para enteros y números de punto flotante. Debido a esto, los números pueden escribirse en JavaScript con o sin decimales:

let num1 = 93;
let num2 = 93.00;

En ambos casos anteriores, el tipo de datos es un número y es el mismo independientemente de si el número tiene puntos decimales o no.

La notación exponencial científica puede usarse en JavaScript para abreviar números muy grandes o pequeños, como en los siguientes ejemplos:

let num3 = 987e8;		// 98700000000
let num4 = 987e-8;		// 0.00000987

Los números en JavaScript se consideran precisos hasta 15 dígitos. Esto significa que los números se redondearán después de alcanzar el decimosexto dígito:

let num5 = 999999999999999;		// permanece como 999999999999999
let num6 = 9999999999999999;	// redondeado a 10000000000000000

Además de representar números, el tipo de número en JavaScript también tiene tres valores simbólicos disponibles:

  • Infinity — un valor numérico que representa un número positivo que se aproxima al infinito
  • -Infinity— un valor numérico que representa un número negativo que se aproxima al infinito
  • NaN — un valor numérico que representa un no número, que significa no es un número

Infinity o -Infinity se devolverá si calculas un número fuera del número más grande posible disponible en JavaScript. Esto también ocurrirá para valores que son indefinidos, como cuando se divide por cero:

let num7 = 5 / 0;	// devolverá Infinity
let num8 = -5 / 0;	// devolverá -Infinity

En términos técnicos, Infinity se mostrará cuando un número exceda el número 1.797693134862315E+308, que representa el límite superior en JavaScript.

De manera similar, -Infinity se mostrará cuando un número supere el límite inferior de -1.797693134862316E+308.

El número Infinity también se puede utilizar en bucles:

while (num9 != Infinity) { 
	// El código aquí se ejecutará hasta num9 = Infinity
}

Para los números que no son números legales, se mostrará NaN. Si intentas realizar una operación matemática con un número y un valor no numérico, se devolverá NaN. Este es el caso en el siguiente ejemplo:

let x = 20 / "Shark";	// x será NaN

Dado que el número 20 no se puede dividir por la cadena "Shark" porque no se puede evaluar como un número, el valor devuelto para la variable x es NaN.

Sin embargo, si una cadena se puede evaluar como un valor numérico, la expresión matemática se puede realizar en JavaScript:

let y = 20 / "5";	// y será 4

En el ejemplo anterior, dado que la cadena "5" se puede evaluar como un valor numérico en JavaScript, se trata como tal y funcionará con el operador matemático para la división, /.

Cuando se asigna el valor NaN a una variable utilizada en una operación, el resultado será el valor de NaN, incluso cuando el otro operando es un número legal:

let a = NaN;
let b = 37;
let c = a + b; 	// c será NaN

JavaScript solo tiene un tipo de dato numérico. Al trabajar con números, cualquier número que ingreses se interpretará como el tipo de datos para números; no es necesario declarar qué tipo de dato estás ingresando porque JavaScript es de tipado dinámico.

Cadenas

A string is a sequence of one or more characters (letters, numbers, symbols). Strings are useful in that they represent textual data.

En JavaScript, las cadenas existen dentro de comillas simples ' o comillas dobles ", por lo que para crear una cadena, encierra una secuencia de caracteres entre comillas:

let singleQuotes = 'This is a string in single quotes.';
let doubleQuotes = "This is a string in double quotes.";

Puedes optar por usar comillas simples o comillas dobles, pero sea cual sea tu decisión, debes mantener la consistencia dentro de un programa.

El programa “¡Hola, mundo!” demuestra cómo se puede usar una cadena en la programación informática, ya que los caracteres que conforman la frase ¡Hola, mundo! en el alert() a continuación son una cadena.

hello.html
<!DOCTYPE HTML>
<html>
<head>
<script>
function helloFunction() {
    alert("Hello, World!");
}
</script>
</head>
<body>
<p><button onclick="helloFunction()">Click me</button></p>
</body>
</html>

Cuando ejecutamos el código y hacemos clic en el botón Haz clic, recibiremos un mensaje emergente con la siguiente salida:

Output
Hello, World!

Al igual que con otros tipos de datos, podemos almacenar cadenas en variables:

let hw = "Hello, World!";

Y mostrar la cadena en el alert() llamando a la variable:

hello.html
...
<script>
let hw = "Hello, World!";
function helloFunction() {
    alert(hw);
}
</script>
...
Output
Hello, World!

Existen muchas operaciones que podemos realizar en cadenas dentro de nuestros programas para manipularlas y lograr los resultados que buscamos. Las cadenas son importantes para comunicar información al usuario y para que el usuario comunique información de vuelta al programa.

Booleanos

El tipo de datos Booleano puede ser uno de dos valores, ya sea verdadero o falso. Los booleanos se utilizan para representar los valores de verdad que están asociados con la rama lógica de las matemáticas, lo que informa a los algoritmos en la ciencia de la computación.

Muchas operaciones en matemáticas nos dan respuestas que se evalúan como verdaderas o falsas:

  • mayor que
    • 500 > 100 verdadero
    • 1 > 5 falso
  • menor que
    • 200 < 400 verdadero
    • 4 < 2 falso
  • igual
    • 5 = 5 verdadero
    • 500 = 400 falso

Al igual que con otros tipos de datos, podemos almacenar un valor booleano en una variable:

let myBool = 5 > 8;	// falso

Dado que 5 no es mayor que 8, la variable myBool tiene el valor de falso.

A medida que escribas más programas en JavaScript, te familiarizarás más con cómo funcionan los booleanos y cómo diferentes funciones y operaciones que se evalúan como verdaderas o falsas pueden cambiar el curso del programa.

Arrays

Un array puede contener múltiples valores dentro de una sola variable. Esto significa que puedes contener una lista de valores dentro de un array e iterar a través de ellos.

Cada elemento o valor que está dentro de un array se llama un elemento. Puedes referirte a los elementos de un array usando un número de índice.

Así como las cadenas se definen como caracteres entre comillas, los arrays se definen teniendo valores entre corchetes [ ].

Un array de cadenas, por ejemplo, se ve así:

let fish = ["shark", "cuttlefish", "clownfish", "eel"];

Si llamamos a la variable fish, obtendremos la siguiente salida:

["shark", "cuttlefish", "clownfish", "eel"]

Los arrays son un tipo de dato muy flexible porque son mutables, lo que significa que se les pueden agregar, eliminar y cambiar valores de elementos.

Objetos

El tipo de dato objeto en JavaScript puede contener muchos valores como pares nombre:valor. Estos pares proporcionan una forma útil de almacenar y acceder a los datos. La sintaxis literal de objeto está compuesta por pares nombre:valor separados por dos puntos con llaves en ambos lados { }.

Normalmente se utiliza para contener datos relacionados, como la información contenida en un ID, una sintaxis literal de objeto en JavaScript se ve así, con espacios en blanco entre propiedades:

let sammy = {firstName:"Sammy", lastName:"Shark", color:"blue", location:"ocean"};

Alternativamente, y especialmente para literales de objeto con un alto número de pares nombre:valor, podemos escribir este tipo de datos en múltiples líneas, con un espacio en blanco después de cada dos puntos:

let sammy = {
    firstName: "Sammy",
    lastName: "Shark",
    color: "blue",
    location: "Ocean"
};

La variable de objeto sammy en cada uno de los ejemplos anteriores tiene 4 propiedades: firstName, lastName, color y location. Estas se pasan valores separados por dos puntos.

Trabajando con Múltiples Tipos de Datos

Mientras que cada programa que creas contendrá múltiples tipos de datos, es importante tener en cuenta que generalmente estarás realizando operaciones dentro del mismo tipo de datos. Es decir, realizarás operaciones matemáticas en números o cortarás cadenas.

Cuando utilizas un operador que funciona en diferentes tipos de datos, como el operador + que puede sumar números o concatenar cadenas, puedes obtener resultados inesperados.

Por ejemplo, al usar el operador + con números y cadenas juntos, los números se tratarán como una cadena (por lo tanto, se concatenarán), pero el orden de los tipos de datos influirá en la concatenación.

Entonces, si creas una variable que realice la siguiente concatenación, JavaScript interpretará cada elemento a continuación como una cadena:

let o = "Ocean" + 5 + 3;

Si llamas a la variable o, obtendrás el siguiente valor devuelto:

Output
Ocean53

Sin embargo, si comienzas con números, los dos números se sumarán antes de que se interpreten como una cadena cuando el programa alcance "Ocean", por lo que el valor devuelto será la suma de los dos números concatenados con la cadena:

let p = 5 + 3 + "Ocean";
Output
8Ocean

Debido a estos resultados inesperados, es probable que realices operaciones y métodos dentro de un solo tipo de datos en lugar de entre ellos. Sin embargo, JavaScript no devuelve errores al mezclar tipos de datos, como lo hacen algunos otros lenguajes de programación.

Conclusión

En este punto, deberías tener una mejor comprensión de algunos de los principales tipos de datos disponibles para usar en JavaScript.

Cada uno de estos tipos de datos será importante a medida que desarrolles proyectos de programación en el lenguaje JavaScript.

Source:
https://www.digitalocean.com/community/tutorials/understanding-data-types-in-javascript