Soy nuevo en JavaScript y me gustaría entender el orden en que se lleva a cabo la asignación de variables. Supongamos que tengo el siguiente juguete de ejemplo:
var foo = document.sentence.split(','); ¿Primero dividimos la oración y luego asignamos la salida de split a la variable foo ? ¿O primero creamos la variable foo y luego asignamos la salida de document.sentence.split(',') a foo ?
¡Gracias!
Con var las cosas son un poco diferentes, debido a la elevación .
La elevación también funciona con variables, por lo que puede usar una variable en el código antes de declararla o inicializarla.
Sin embargo, JavaScript solo levanta declaraciones, ¡no inicializaciones! Esto significa que la inicialización no ocurre hasta que se ejecuta la línea de código asociada, incluso si la variable se inicializó originalmente y luego se declaró, o se declaró e inicializó en la misma línea.
Ejemplo:
'option strict'; function myFunction() { console.log(foo); // => undefined var sentence = 'my,array,of,strings'; var foo = sentence.split(','); console.log(foo); // => ['my', 'array', 'of', 'strings'] } myFunction(); En el primer console.log(foo) no obtuvimos un error de Uncaught ReferenceError: foo is not defined . Eso es lo que sucedería normalmente si intentáramos acceder a una variable que aún no ha sido declarada.
Si intentamos lo mismo usando const (o let ), obtenemos una respuesta diferente:
'option strict'; function myFunction() { console.log(foo); // => Uncaught ReferenceError: Cannot access 'foo' before initialization const sentence = 'my,array,of,strings'; const foo = sentence.split(','); console.log(foo); // => ['my', 'array', 'of', 'strings'] } myFunction();