Continuando con el tutorial, en esta ocasión veremos la forma de asignar en la memoria información durante la ejecución de nuestro programa y algunos tipos de datos referidos a esto.
Variables
Nos permiten guardar información en la memoria del programa. Las variables tienen nombres, que crean una referencia a éstas.
Estos nombres no pueden contener espacios y sólo pueden tener caracteres alfanuméricos, guiones bajo y signo $.
Por ejemplo:
let nombre = "Pepita";
Como vemos en este ejemplo para definir una variable debemos usar la palabra reservada let seguido del nombre de la misma.
Luego podemos imprimir la variable por pantalla de la siguiente forma:
alert("Buenas tardes " + nombre);
El código finalmente quedará:
let nombre = "Pepita";
alert("Hola " + nombre);
Una cosa que ya habíamos visto en la publicación anterior, pero no está de más volver a mencionar es que para imprimir texto debemos usar comillas dobles o simples también:
let nombre = 'Pepita';
alert('Hola ' + nombre);
Podemos probar el ingreso de información a una variable mediante el método prompt, el cual le va a dar la posibilidad al usuario de ingresar texto por teclado de forma simple para hacer pruebas:
let nombre = prompt("Ingrese su nombre");
alert("Hola " + nombre);
Concatenar información
Como vimos anteriormente podemos usar el caracter + (más) para concatenar cadenas de texto. En el ejemplo uníamos el texto «Hola» con el nombre de la persona.
Podemos probar otro ejemplo:
let nombre = prompt("Ingrese su nombre");
let apellido = prompt("Ingrese su apellido");
alert("Hola " + nombre + " " + apellido);
Una variable, como su nombre lo indica, puede cambiar su valor. Por ejemplo:
let nombre = "Don Pepito";
alert("Hola " + nombre);
nombre = "Don José";
alert("Hola " + nombre);
Es decir que asignamos una variable con un valor y luego podemos cambiarlo por otro.
Por ejemplo: el usuario puede ingresar su nombre por pantalla, y luego se le puede dar la posibilidad de cambiar el mismo por si se equivocó la primera vez:
let nombre = prompt("Ingrese su nombre");
nombre = prompt("Por favor verifique que su nombre esté bien escrito", nombre);
alert("Hola " + nombre);
Constantes
A diferencia de lo anterior en ciertas ocasiones podríamos necesitar que un valor no pueda ser modificado. El típico ejemplo del PI, que siempre es 3.14:
const PI = 3.14
Para eso podemos usar constantes, que cumplen la misma función que una variable sólo que no pueden modificar su valor.
Como podemos ver, para definir una constante debemos usar la palabra reservada const, en lugar de let.
El siguiente código devuelve un error:
const nombre = "Don Pepito";
nombre = "Don José";
Case sensitive
Algo importante a tener en cuenta es que para acceder a una variable/constante debemos escribirla tal cual se definió. Los caracteres en minúscula y mayúscula son diferentes para Javascript:
El siguiente código está mal escrito:
let nombre = "Pepita";
alert(NOMBRE);
Esto se debe a que si bien para las personas se lee igual, no respeta los mismos caracteres. La variable se definió con minúscula y luego se intentó acceder con mayúsculas.
Mostrar errores por pantalla
Como vimos en en ejemplo anterior, muchas veces nuestro código puede generar errores, pero no los vemos. Para eso podemos utilizar la consola, por ejemplo en mi caso yo uso google chrome.
Entonces hacemos clic en los tres puntos de la parte superior derecha de nuestro navegador y luego a: Más herramientas / Herramientas para desarrolladores.
En la pestaña de Console podemos ver los errores si es que los hay:
Tipos de datos
Existen muchos tipos de datos que iremos viendo de a poco, pero los básicos que debemos conocer primero son:
- String: Nos permiten guardar cadenas de texto: el nombre de una persona, el título de una noticia, la letra de una canción, etc.
- Number: Para el uso de números, son útiles para realizar operaciones matemáticas. Estos números pueden ser enteros o decimales. También permiten guardar negativos o en distintos sistemas como decimal, binario, hexadecimal, etc.
- Boolean: Se usan para guardar valores lógicos, es decir true (verdadero) o false (falso) Por ejemplo para verificar un resultado binario.
Números
Como se indicó, los tipos de datos numéricos se utilizan para realizar operaciones matemáticas. Por ejemplo:
let precio = 1000;
let cantidad = 5;
let total = precio * cantidad;
alert("El total es: " + total);
Las operaciones aritméticas: suma, resta, multiplicación y división se calculan con los signos: +, -, * y / respectivamente.
Signo +: concatenación vs suma
Si bien el signo + se usa para sumar, recordemos que también sirve para concatenar información.
Si nosotros tuviésemos el siguiente código:
let num1 = prompt("Ingrese el primer número");
let num2 = prompt("Ingrese el segundo número");
let resultado = num1 + num2;
alert("El resultado es: " + resultado);
Si probamos ingresar por ejemplo desde el teclado el primer número como 10 y el segundo 5, nos llevaremos la no muy grata sorpresa de que el resultado de la suma es ¿105?
Esto se debe a que si usamos el signo + con un string el programa intentará concatenar. Este caracter sólo suma si todos sus valores son numéricos.
Vamos, que no es lo mismo:
let num1 = "10";
let num2 = "5";
let resultado = num1 + num2;
alert("El resultado es: " + resultado);
(Devuelve: «105»)
Que hacer:
let num1 = 10;
let num2 = 5;
let resultado = num1 + num2;
alert("El resultado es: " + resultado);
(Devuelve 15)
Pero al usar el método prompt el resultado se guarda como una cadena de texto.
Ahora si quisiéramos convertir una cadena de texto en un número, es decir un String en un Number, podríamos hacer algo como esto:
let num1 = prompt("Ingrese el primer número");
let num2 = prompt("Ingrese el segundo número");
num1 = parseInt(num1, 10);
num2 = parseInt(num2, 10);
let resultado = num1 + num2;
alert("El resultado es: " + resultado);
El método parseInt convierte un texto en un número entero (para decimal debemos usar parseFloat) lo que transformará un: «5» en un 5.
Debemos ingresar como primer parámetro el número que queremos convertir y como segundo el sistema, el 10 es porque es el sistema decimal:
let num = prompt("Ingrese el primer número");
num = parseInt(num, 10);