Bruno R
Las variables primero se definen y luego se inicializa dandoles un valor.
Estos son contenedores, almacenan cualquier tipo de datos, string, numeros, booleanos, como tambien funciones, objetos, arreglos o tambien otras variables.
let soyUnaVariableDefinida; //se define soyUnaVariableDefinida = "que tiene este contenido de tipo string"; // se inicializa
Las variables pueden definirse e inicializarse mediante una sola instruccion.
let soyUnaVariableDefinida = "que tiene este contenido de tipo string";
Existen dos maneras de declarar variables: let y var. Su principal diferencia radica en el ambito que alcanzan estas variables.
Se dice que Let tiene un alcance local porque su declaracion o modificacion no sale del ambito de bloque en el que esté, por fuera de esté la variable no existe o no se modifico .
let x = 1; if (x === 1) { let x = 2; console.log(x); // output: 2 // la modificacion de esta variable alcanza solo el ambito de este bloque } console.log(x); // output: 1 // por fuera del bloque la variable seguira conservando su valor
Por otro lado definir una variable con Var le proporciona un alcance global, esto quiere decir que no importara el ambito en el que fue declarada esta variable, esta podra ser llamada o modificada desde cualquier bloque o subs bloques del codigo, lo que prestaria a errores de manera frecuente. (Se debe tener especial cuidado al definir de esta forma las variable).
Otra de las diferencias relevantes de estas dos formas de definir la variable es que por medio de var se puede volver a redefinir el valor de la variable por usando let presentaria un error. Lo que si se puede hacer con let si buscamos cambiar el valor de la variable es inicializar la variable con otro valor:
var myName = 'Chris'; var myName = 'Bob'; //sin errores cambia el valor de la variable let myName = 'Chris'; let myName = 'Bob'; //esto presentaria un error porque la variable ya estaba definida let myName = 'Chris'; myName = 'Bob'; //sin necesidad de declarar nada simplemente se le proporciona un nuevo valor
NOTA: se considera buena practica el uso de let para definir funciones por la facilidad para presentar errores de var en el desarrollo del codigo.
Para crear variables se puede usar cualquier letra y numero. Recordemos que javascript es keysensitive osea que las mayusculas en el nombre de la variable hacen que puedan haber dos variables con el mismo nombre pero con mayusculas distintas, (preferiblemente evitar esto para evitar confusiones en el codigo). Ademas de esto hay alguna reglas a tener en cuenta a la hora de nombrar una variable:
Como se dijo mas arriba existen distintos tipos de valores para una variable. Estas pueden ser:
let soyUnNumero = 17;
let soyUnaCadena = "aca escribo lo que se me da la gana"
let soyTrueOrFalse = true //nada pues eso puede ser verdadero o falso xD
let numberArray = [1,3,4,1,2,5,6,4]; let stringArray = ["Jose","Carlos","Juan"]
let myDog = {name:"Roco" , edad:"2"}
Es un lenguaje dinamico porque a diferencia de otros leguajes (estaticos), a la hora de definir una variable no se especifica el tipo de dato que tendra (cualquiera de los vistos arriba).
Por esta razon se debe tener especial cuidado en el tipo de dato que estamos manejando para evitar dolores de cabeza.
Operador especial typeof es util en situaciones donde no sabemos porque recibimos retornos inesperados.
let myAge = '25'; typeof myAge; // output string //el operador especial typeof retorna el tipo de dato que tiene esta variable.
Muchos lenguajes utilizan este concepto, es una variable que una vez declarada su valor no puede cambiar. Se considera util por varias razones, por ejemplo seguridad por scripts de terceros que puedan modificar estos valores, por depuracion y comprencion de codigo (valores que es conveniente tenerlos inmutables si por un error cambiaran, podria traer problemas). En Java Script la palabra reservada para definir este tipo de valores inmutables es const.
const daysInWeek = 7; const hoursInDay = 24;