Cuando arrancas en el mundo de la programación si algo debes conocer son los tipos de datos y operadores soportados por el lenguaje de programación con el que vas a dar tus primeros pasos. De otro modo no vas a poder desarrollar bien tus algoritmos y cometerás esos fallos tontos que se traducen en horas de frustración porque no entiendes la razón por la que tu programa falla. Pero comencemos por el principio.
Un tipo de datos sirve para definir el tipo y el comportamiento de los datos: En otras palabras, con esto podemos decirle al compilador o al intérprete cómo pretendemos usar una parte de los datos. La mayoría de los lenguajes de programación admiten tipos de datos básicos como números, booleanos, cadenas, etc.
En JavaScript podemos decir que admite ocho tipos de datos: número, BigInt, booleano, string o cadena, valor nulo, indefinido, símbolo y objeto.
Para simplificarlo un poco más los tipos de datos en JavaScript se pueden clasificar ampliamente en dos categorías: tipos de datos primitivos y tipos de datos no primitivos. Donde un objeto es un tipo de datos no primitivo o complejo, y el resto son tipos de datos primitivos.
Pero algo que debemos tener en cuenta en JavaScript, y que a veces complica las cosas un poco, es que se trata de un lenguaje de tipo dinámico, lo que significa que los tipos de variables se comprueban durante el tiempo de ejecución. La misma variable puede contener valores de diferentes tipos en cualquier momento.
Por ejemplo:
// x es un string o cadena
let x = "Hola Mundo";
// x es un número
x = 100;
// x es un booleano
x = true;
Esto hace que si bien el programa no se romperá durante su tiempo de ejecución como ocurre en Java, si podemos encontrar comportamientos inesperados si no tenemos claro cómo trabajar con los diferentes tipos de operadores.
Estos son los diversos operadores que admite JavaScript:
Con ellos podemos utilizar operadores aritméticos para realizar cálculos matemáticos en los operandos. JavaScript proporciona los siguientes operadores aritméticos:
Operador de suma (+) para realizar sumas en los operandos.
let a = 12;
let b = 10;
let result = a+b;
console.log(result)
console.log(1+2);
console.log(a+6);
Output
22
3
18
Operador de sustracción (-) para restar el operando derecho del operando izquierdo.
let a = 10;
let b = 4;
let result = a-b;
console.log(result);
console.log(23-20);
Output:
6
3
Operador de multiplicación (*) para multiplicar los operandos.
let a = 10;
let b = 4;
let result = a*b;
console.log(result);
console.log(23*20);
Output:
40
460
Operador de división (/) para realizar la división en los operandos.
let a = 10;
let b = 4;
let result = a/b;
console.log(result);
console.log(40/20);
Output:
2.5
2
Operador de módulo (%). En informática, la operación módulo obtiene el resto entero de la división de un número entre otro.
let a = 10;
let b = 4;
let result = a%b;
console.log(result);
console.log(40%20);
Output:
2
0
Operador de exponenciación (**) para calcular la base a la potencia del exponente (base^exponente).
let a = 3;
console.log(a**4);
Output:
81
Operador de incremento (++) para aumentar el valor entero en uno.
let a = 3;
// Value of a=4 and returns 4
console.log(++a);
// Value of a=5 and returns 4
console.log(a++);
// Value of a=5 and returns 5
console.log(a);
Output:
4
4
5
Operador de decremento (--) que disminuye el valor entero en uno.
let a = 3;
// Value of a=2 and returns 2
console.log(--a);
// Value of a=1 and returns 2
console.log(a--);
// Value of a=1 and returns 1
console.log(a);
Output:
2
2
1
Operador unario más (+) para intentar convertir el operando en un número si aún no lo es
console.log(typeof("10"));
console.log(typeof(+"10"));
console.log(typeof(false));
console.log(typeof(+false));
Output:
string
number
boolean
number
Operador de negación unaria (-), que devuelve la negación de su operando.
let a = 10;
console.log(-a);
Output:
-10
Un operador de asignación asigna un valor a su operando izquierdo basándose en el valor de su operando derecho. Utilizamos operadores de asignación para asignar valores a las variables. JavaScript proporciona los siguientes operadores de asignación:
Operador de asignación (=) para asignar el valor del operando derecho al operando izquierdo.
// Assigning 10 to a
let a = 10;
console.log(a);
Output:
10
Operador de asignación de suma (+=) para sumar los valores de los operandos izquierdo y derecho y asignar el resultado al operando izquierdo.
let a = 10;
let b = 5;
// Equivalent to a = a+b
a += b;
console.log(a);
Output:
15
Operador de asignación de resta (-=) para restar el operando derecho del operando izquierdo y asignará el resultado al operando izquierdo.
let a = 10;
let b = 5;
// Equivalent to a = a-b
a -= b;
console.log(a);
Output:
5
Operador de asignación de multiplicación (*=) para multiplicar los valores de los operandos izquierdo y derecho y asigne el resultado al operando izquierdo.
let a = 10;
let b = 5;
// Equivalent to a = a*b
a *= b;
console.log(a);
Output:
50
Operador de asignación de división (/=) para dividir el valor del operando izquierdo por el valor del operando derecho y asignar el resultado al operando izquierdo.
let a = 10;
let b = 5;
// Equivalent to a = a/b
a /= b;
console.log(a);
Output:
2
Operador de asignación de resto (%=), divide el operando izquierdo por el operando derecho y asigna el resto al operando izquierdo.
let a = 10;
let b = 5;
// Equivalent to a = a%b
a %= b;
console.log(a);
Output:
0
Operador de Asignación de Exponenciación (**=), eleva el operando izquierdo a la potencia del operando derecho y asigna el resultado al operando izquierdo.
let a = 10;
let b = 5;
// Equivalent to a = a**b
a **= b;
console.log(a);
Output:
100000
Nota: Los operadores de asignación bit a bit o Bitwise (<<=, >>=, >>>=, &=, ^=, |=, &&=, ||=, ??=) que veremos más adelante funcionan de manera similar.
El operador de concatenación (+) se usa para concatenar (agregar) cadenas de texto o también llamados strings.
let result = "If" + "Geek" + "Then";
console.log(result);
Output:
IfGeekThen
Los operadores de comparación se utilizan para comparar operandos y devuelven un valor lógico (verdadero o falso) sobre la base de la comparación. JavaScript proporciona los siguientes operadores de comparación:
Operador igual (==), devuelve verdadero si los operandos son iguales. Solo compara los valores de los operandos, ignorando su tipo al comparar.
console.log(2==4);
console.log("2"==2);
Output:
false
true
Operador no igual (!=), devuelve verdadero si los operandos no son iguales. También ignora el tipo de operandos al comparar.
console.log(2!=4);
console.log(2!="2");
Output:
true
false
Operador de igualdad estricta (===), devuelve verdadero si los operandos son iguales. Compara tanto los valores como los tipos de operandos mientras compara.
console.log(2===4);
console.log("2"===2);
Output:
false
false
Operador estricto no igual (!==), devuelve verdadero si los operandos no son iguales. También compara ambos: los valores y el tipo de operandos mientras compara.
console.log(2 !== 4);
console.log(2 !== "2");
Output:
true
true
Operador mayor que (>), devuelve verdadero si el operando izquierdo es mayor que el operando derecho.
console.log(10>4);
console.log(5>5);
Output:
true
false
Operador mayor que o igual (>=), devuelve verdadero si el operando izquierdo es mayor o igual que el operando derecho.
console.log(10 >= 4);
console.log(5 >= 5);
Output:
true
true
Operador menor que (<), devuelve verdadero si el operando izquierdo es menor que el operando derecho.
console.log(10<4);
console.log(5<5);
Output:
false
false
Operador menor o igual (<=), devuelve verdadero si el operando izquierdo es menor o igual que el operando derecho.
console.log(10 <= 4);
console.log(5 <= 5);
Output:
false
true
AND lógico (&&)
Uso: expr1 && expr2
Devuelve expr1 si se puede convertir a falso; de lo contrario, devuelve expr2. Cuando se usa con valores booleanos, && devuelve verdadero si ambos operandos son verdaderos; de lo contrario, devuelve falso.
console.log(true || false);
Output: true
NO lógico (!)
Uso: !expr
Devuelve falso si su único operando se puede convertir en verdadero; de lo contrario, devuelve verdadero.
console.log(!true);
Output: false
Una operación bit a bit o bitwise opera sobre números binarios a nivel de sus bits individuales. Es una acción primitiva rápida, soportada directamente por los procesadores. JavaScript proporciona los siguientes operadores bitwise
Operador bitwise AND(&)
Este operador realiza una operación AND booleana en cada bit de sus argumentos enteros.
// In binary-
// 4: 100
// 1: 001
console.log(4 & 1);
Output: 0
Operador Bitwise OR (|)
Este operador realiza una operación OR booleana en cada bit de sus argumentos enteros.
console.log(4 | 1);
Output:5
Operador Bitwise XOR (^)
Este operador realiza una operación OR exclusiva booleana en cada bit de sus argumentos enteros.
console.log(4 ^ 1);
Output:5
Operador Bitwise NOT (~)
Este operador invierte todos los bits del operando.
console.log(~4);
Output:-5
Nota: JavaScript convierte números a enteros de 32 bits con signo antes de realizar una operación bit a bit. Y cuando se realiza la operación, vuelve a convertir el resultado en números de JavaScript de 64 bits.
Operador de desplazamiento a la izquierda (<<)
Este operador desplaza todos los bits de su primer operando hacia la izquierda el número de lugares especificado en el segundo operando.
console.log(4<<1);
Output: 8
Operador de desplazamiento a la derecha (>>)
Este operador desplaza todos los bits de su primer operando a la derecha el número de lugares especificado en el segundo operando.
console.log(4>>1);
Output: 2
Operador Ternario
El operador ternario es la abreviatura de la instrucción if-else. Asigna valor a una variable en base a una condición, la sintaxis de la misma es:
condition ? value1 : value2
Si la condición es verdadera, el operador devuelve el valor de value1. De lo contrario, devuelve el valor de value2.
let result = (200>100) ? "Yes" : "No";
console.log(result);
Output:Yes
Operador Typeof
Se utiliza para encontrar el tipo de datos de un valor o variable.
console.log(typeof(100));
console.log(typeof("100"));
Output:
number
string
En JavaScript, los objetos son colecciones de pares clave-valor, donde la clave es una cadena y el valor puede ser cualquier tipo de datos.
Puede crear un objeto vacío en JavaScript usando la sintaxis de "constructor de objetos" (nuevo Objeto()) o la sintaxis de "objeto literal" (llaves {...}).
let obj1 = new Object();
let obj2 = {};
Cada objeto contiene una lista opcional de propiedades, donde una propiedad es un par clave:valor. Puede acceder a los valores del objeto mediante la notación de puntos o la notación tipo matriz (corchetes).
let obj = {
"key1" : "value1",
"key2" : "value2"
}
console.log(obj.key1);
console.log(obj["key2"]);
Output:
value1
value2
Y llegamos al final del artículo. Tal como comentamos. JavaScript es uno de los lenguajes de programación más populares en la web hoy en día. Tiene todo tipo de usos, desde crear sitios web, aplicaciones web o aplicaciones de servidor a juegos, aplicaciones móviles, etc. Pero es importante conocer y estar familiarizado con los tipos de datos y operadores aceptados. Del mismo modo que cualquier cosa que se nos ocurra lo podemos hacer con JavaScript, cualquier error tonto puede suceder.
Espero que este artículo te ayude a entender cómo funciona JavaScript bajo el capó. No te olvides de dejar tus comentarios y compartir este artículo si te ha gustado en tus redes sociales.