No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Ámbito local o de función

9/24
Recursos

Aportes 8

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Cómo usaría una variable global y una local?

Por ejemplo en un ciclo while, la variable inicial declaramos por fuera del bloque, porque necesitamos actualizar su valor, sino sería un ciclo infinito.

let age = 0; // variable global
while(age < 18) {
    age = age + 1;
	if(age != 18) {
		console.log('Hoy es mi cumpleaños número: ', age);
	} else {
		console.log(`Hoy cumplo: ${age} años así que ya soy mayor de edad`);
	}
}

// OUTPUT 👇

Hoy es mi cumpleaños número:  1
Hoy es mi cumpleaños número:  2
Hoy es mi cumpleaños número:  3
Hoy es mi cumpleaños número:  4
Hoy es mi cumpleaños número:  5
Hoy es mi cumpleaños número:  6
Hoy es mi cumpleaños número:  7
Hoy es mi cumpleaños número:  8
Hoy es mi cumpleaños número:  9
Hoy es mi cumpleaños número:  10
Hoy es mi cumpleaños número:  11
Hoy es mi cumpleaños número:  12
Hoy es mi cumpleaños número:  13
Hoy es mi cumpleaños número:  14
Hoy es mi cumpleaños número:  15
Hoy es mi cumpleaños número:  16
Hoy es mi cumpleaños número:  17
Hoy cumplo: 18 años así que ya soy mayor de edad

Otro ejemplo de uso de variable global:

let users = ['Petra', 'Carla']; // variable global
console.log('initial users: ', users)

function newUser(name) {
	users.push(name);
	console.log('modified users:', users);
}

newUser('Elcira');

// OUTPUT 👇

initial users:
Array [ "Petra", "Carla" ]

modified users:
Array(3) [ "Petra", "Carla", "Elcira"]

Un ejemplo de uso de variable local:

function orderBreakfast(...menu) {
	let order = menu; // variable local
	console.log('Your breakfast', order)
}

orderBreakfast('coffee','toast','eggs');

// OUTPUT 👇

Your breakfast
Array(3) [ "coffee", "toast", "eggs" ]

Cada que se ejecuta un script en Node o en el navegador, se crea un Contexto de ejecución global, donde se almacenan las variables definidas dentro de este.
.
Cuando una función se crea, también se crea un contexto de ejecución, pero para esta función en particular, así que todas las variables que se declaran e inicializan dentro de este nuevo Contexto de Ejecución, se van a “guardar” ahí, sin poder ser accesadas desde otros contextos de ejecución, tanto global como otros contextos locales.
.
Cuando se quiere acceder a una variable dentro de un contexto local y no la encuentra, como en el ejemplo de abajo:

function greet() {
  console.log(greeting)
}

Lo que el engine de JS va a hacer, es buscar la variable en un ámbito más afuera del suyo hasta llegar al ámbito global. Si en el ámbito global no encuentra la variable, arroja un error. Pero si sí encontro la variable en el ámbito local, se va a quedar con esa variable. Eso es lo que se le conoce como el Scope Chain en JavaScript

Las variables declaradas en el ámbito local o de función solo van a existir dentro de esa función.

![](https://static.platzi.com/media/user_upload/image-2740a410-3ee0-4610-9db2-f1d34f6014e5.jpg)![](https://static.platzi.com/media/user_upload/image-0958a07d-59cb-470f-aa4b-6fb9edad6111.jpg)Si te interesa el tema de los diferentes ámbitos en los que habitan las variables te recomiendo el curso de scope de gndx

Las variables de son declaradas en un ámbito local tienen la característica que puedes acceder a ellas en cualquier bloqué o lugar en nuestro código. Sin embargo, como bien explica Alex, en el caso de las variables declaradas en un ámbito local, solo podrán ser utilizadas en el bloque de código donde fueron creadas.

Only Class Code

function greet() {
    let greeting = "Hello World";
    console.log(greeting);
}

greet();//> Hello World
console.log(greeting);//> Error

Scope Global : variable asignada fuera de una funcion que puede ser utilizada dentro de cualquier otra funcion.

Scope Local: variable asignada dentro de una funcion en especifico solo para ser utilizada dentro de dicha funcion

Un ejemplo de como usamos una variable local muy seguido es con los ciclos for

for (let index = 0; index < 10; index++) {
	// conjuro mágico
}

Para usar una variable global con un índice, por ejemplo tomando el nombre de una lista de usuarios, almacenaría el índice del array de dicho usuario en una variable global para así poder usarlo en una iteración.

const handsomeUsers = ['Jonathan', 'Elcira', 'Reinaldo'];

const mostHandsomeUser = handsomeUsers[2];

for (let index = 0; index < mostHandsomeUser.length; index++) {
	console.log(mostHandsomeUser[index])
}
Output:
R
e
i
n
a
l
d
o