Scope Global : todo el mundo.
Scope Local : Las Vegas, y lo que pasa en las vegas, se queda en Las Vegas.
Introducción a JavaScript
¿Qué es JavaScript y para qué sirve?
Accede a la versión más actualizada de este contenido
¿Por qué JavaScript?
Elementos de un Lenguaje de Programación: Variables, Funciones y Sintaxis
¿Qué es una variable?
Qué son las funciones en JavaScript
¿Qué es una función declarativa y una expresiva?
Playground: retorna el tipo
Quiz: Introducción a JavaScript
Bases de JavaScript
Scope
Hoisting
Coerción
Valores: Truthy y Falsy
Operadores: Asignación, Comparación y Aritméticos.
Playground: compara un número secreto
Quiz: Bases de JavaScript
Condicionales
Condicionales: If, Else, else if
Switch
Playground: tienda de tecnología
Quiz: Condicionales
Arrays
¿Qué es un array?
Playground: detecta el elemento impostor de un array
Quiz: Arrays
Loops
Loops: For y For...of
Loops: While
Playground: rescata al estudiante
Objects
Objects
Objects: Función constructora
Playground: permiso para conducir
Métodos de Arrays
Métodos de recorridos de Arrays
Recorriendo Arrays con .find(), .forEach() y .some()
Eliminando elementos de un Array
Playground: Arregla el Bug
Quiz: Métodos de Arrays
Próximos pasos con JavaScript
Continúa con el Curso Práctico de JavaScript
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Diego De Granda
El scope es cada uno de los entornos donde las variables tienen alcance dentro del código de JavaScript. En otras palabras, determina que valor tendrá la variable dependiendo dónde se encuentre.
Imagina que pierdes algo importante (llaves, dinero, celular), comienzas a buscar este objeto por los lugares más cercanos en que te encuentras; si no lo encuentras, buscas en los lugares más lejanos y así sucesivamente hasta encontrarlo. Las llaves son las variables y tú eres JavaScript.
Si haces referencia a una variable, el motor de JavaScript buscará su declaración en el entorno más cercano, y seguirá buscando en entornos más lejanos hasta llegar a la línea de código que la variable esté declarada, pero no en viceversa. A este proceso se lo denomina cadena de scope (scope chaining).
Existen dos tipos de scope: global y local. El scope local puede ser de función o de bloque. Un bloque es toda porción de código que está encerrada entre llaves {}
, estos pueden ser los bloques: función, if, else, while, y for.
En la imagen anterior, el entorno más cercano para la variable saludo
es el scope de bloque, le sigue el scope de función y finalmente el scope global. Este es un ejemplo del recorrido que sigue JavaScript hasta encontrar la variable referenciada.
Las variables globales son aquellas que se encuentran declaradas fuera de los bloques de código o funciones .El scope global es el entorno donde las variables globales pueden ser accedidas desde cualquier lugar de nuestro programa.
En el siguiente ejemplo, mira el código y piensa qué mostrará en consola. Una vez tengas las respuestas, abre la consola. ¿Qué sucedió?
var nombre = "JavaScript"
function saludar(){
console.log("Hola " + nombre)
}
saludar()
Con este ejemplo podemos concluir que la función saludar
tiene acceso a la variable nombre
. ¿Por qué? Porque la variable nombre
está en un scope global.
Volviendo al ejemplo de las llaves, JavaScript busca la variable en el contexto más cercano (scope local de función) ¿la encontró? No, entonces sigue buscando en el scope global ¿la encontró? Sí, entonces la utiliza. Ten en cuenta que JavaScript busca de un scope cercano a uno lejano, pero no en viceversa, esto es importante para el scope local.
Entonces, una variable global puede ser accedida en cualquier parte, porque el scope global es el último entorno en el que JavaScript busca una variable. Recuerda esto cuándo se hable de scope local.
Las variables locales son aquellas que se encuentran declaradas dentro de los bloques de código o funciones. El scope local es el entorno donde las variables locales solo se pueden acceder desde una función o bloque del programa.
Observa el siguiente código y piensa cuál será el resultado.
function saludo() {
var nombre = "Andres"
console.log(nombre)
}
saludo()
console.log(nombre)
Primeramente, al invocarse la función saludo
imprimirá "Andres"
por consola, pero inmediatamente después, existirá un error de referencia.
function saludo() {
let nombre = "Andres"
console.log(nombre)
}
saludo() // "Andres"
console.log(nombre) // ReferenceError: nombre is not defined
Esto sucede porque la variable nombre
tiene un scope local, por lo que solo se puede acceder dentro de la misma. Volviendo al ejemplo de las llaves, JavaScript busca la variable en el contexto más cercano (scope global) ¿la encontró? No, entonces no lo encontrará en ningún lado y arroja un error de referencia.
Esto sucede porque JavaScript no puede volver a buscar a una función que no sabe si encontrará la variable o no, teniendo en cuenta que puede haber una variedad ilimitada de funciones, ¿cuál buscar? Por eso, el alcance de una función local es el lugar donde fue declarada.
El tema de Scope es amplio, y solo abarcamos un poco sin tener en cuenta su comportamiento con las nuevas declaraciones de variables let
y const
, por lo que te recomiendo seguir el Curso de Closures y Scope en JavaScript.
Contribución creada por Andrés Guano (Platzi Contributor).
Aportes 596
Preguntas 68
Scope Global : todo el mundo.
Scope Local : Las Vegas, y lo que pasa en las vegas, se queda en Las Vegas.
Vídeo para profundizar en el tema de Scope del profe Sacha:
Les comparto estas imagenes que hablan sobre el scope.
Global -> Universo , seria como el todo , las variables son accesibles desde cualquier parte del código.
Local -> Cada Planeta , un mundo distinto , las variables son accesibles en ese mundo , no es visible para los demás mundos.
Resumen : lo que es global se puede acceder desde cualquier parte de tu código , y lo pueden acceder cada mundo , lo que es local solo lo puede acceder cada mundo.😁
//El alcance (scope) de una variable puede ser:
//1- Global:
var miNombre = "Diego";
//2- Local:
function nombre(){
var miApellido = "De Granda";
console.log(miNombre + " " + miApellido);
}
nombre(); //Devuelve "Diego De Granda"
//En todo el código podemos utilizar la variable global.
//Las variables locales sólo pueden ser accedidas
//dentro de la función en la que fueron declaradas.
el scope es como una puerta que solo puede abrirse por dentro. de local a global, pero no puede abrirse por fuera es decir de global a local.
**variables globales: ** Pueden ser accedidas desde un scope local o global. las variables globales son definidas fuera de las funciones (Scope global)
_**Scope local: **_Son aquellas variables definidas dentro del cuerpo de la función, estas son solo accedidas desde dentro de la misma función.
Scope Global: variables que pueden ser accedidas y procesadas por cualquier función dentro del código.
Scope: Alcance que tienen las variables en el codigo.
Existen 2 tipos de scopes.
Global: Puede ser llamada a lo largo de nuestro programa.
Local: Solo puede ser llamada dentro del bloque de codigo en el que se declaro.
el salto de line es con Shift+enter
Hola a todos! Acá les comparto mis apuntes para esta clase.
Éxito!
**P.D.: **Iré dejando todos los apuntes en un tutorial, por acá --> https://platzi.com/tutoriales/1814-basico-javascript/9339-guia-completa-curso-basico-de-javascript/
En lo personal, para no confundirme utilizo: “Var”, “CONST”, y “let”.
Esto, me permite diferenciarlas entre tanto código (más cuando eres principiante).
var: global.
let: Sólo vive dentro del bloque donde fue declarada.
CONST: Es una constante. No cambiará su valor.
Les comparte respuestas de la comunidad:
https://platzi.com/discusiones/1099-fundamentos-javascript-2017/32001-cual-es-la-diferencia-entre-var-let-y-const/
Super fácil de entender y mas con esos ejemplos, el scope global es todo el conjunto universo, mientras que el scope local es un conjunto dentro de este universo, el cual puede tener acceso a los elementos del conjunto universo, pero el universo no puede tener acceso a los elementos del conjunto (Scope local).
Por un momento pensé que estaba en el national geographic
No pido mucho … 😄
SCOPE
Es el alcance que tiene las variables.
Existen dos tipos de Scope:
• Scope Global: lo que está en global no puede acceder a lo que está en local.
• Scope Local: lo que está en local puede acceder a lo que está en global.
A este profe si le entiendo, muy claro todooooo, gracias.
SCOPE
- Es el alcance que tienen que tienen las variables
- Hay dos tipos de scope:
- GLOBAL: Se accede desde cualquier parte
- LOCAL: Dentro de una funcion
En resumen el scope es el alcance que tienen las variables, hay 2 tipos de variables, variables locales y globales.
Las variables locales son las que se encuentran declaradas dentro de las funciones y solo seran usadas dentro de las funciones.
Las variables globales son las que se declararon fuera de las funciones pero si pueden ser usadas dentro de las funciones ya que existen de manera global en todo el codigo
IMPRRESIONANTE!!! POR FIN ENTENDI ESTO!! YA ME ESTABA POR RETIRAR DEL TODO CON JS Y DEDICARME MAS AL DISEÑO. PERO ESTE PROFESOS ME HIZO VOLVER
Un buen desarrollador en JS sabe que es el scope y como funciona 😃
El ejemplo de las hormigas. Grande Diego.
Descripción Grafica De Scope & Su Función
¡Hola! Les comparto mis notas de esta clase 😃
Encontre un Blogpost de hace unos años en donde tambien lo explican:
https://platzi.com/blog/como-funciona-el-scope-en-javascript/
✨ Scope permite determinar el alcance de una variable. Estas pueden ser globales y locales.
Espero no confundirlos, aclaro que scope = ámbito.
Cuando tenemos var en el ámbito de bloque (dentro de un if o for), éste expande su alcance al ambito local ( dentro de la misma función pero fuera del if). Cuando usamos let bloqueamos el alcance en donde se este declarando, en este caso dentro del if.
Este es un resumen de la clase según lo que yo entendí, espero les sirva
++Que es scope ? ++
es el alcance que tienen las variables (depende mucho de donde declares la variable para saber si vas a tener acceso a ella o no. estas pueden ser declaradas en dos tipos de scope
scope global : Aquí las variables son declaradas fuera de sentencia es decir fuera de cualquier function etc. ( en este caso aunque las variables son declaradas en scope global puedes usarlas también dentro del scope local que veremos ahora )
scope local : el Scope local se forma dentro de alguna función, bloque, ciclo while etc (las variables que dentro de este scope local solamente podrán ser usadas ahí. no puedes usar una variable de scope local en un scope global )
si sabia como funciona pero no sabia que se llamaba asi.
Scope global = Aguila
Scope local = Mosca
" Aguila no caza mosca"
Saludos!
Muy buen profe, muy claro
Scope: el alcance que tienen las variables
Dos tipos de scope:
Variables globales pueden ser accedidas dentro de las funciones.
Scope: Es el alcance de las variables que declaramos. Existe el Scope global y local.
Global: es una variable que tiene un alcance en todo nuestro programa.
Local: es una variable que tiene un alcance limitado, es decir que solo existen dentro de la función que se declara.
Excelente analogía => Personas y hormigas
😀
Scope Global✅
El scope global se genera una ves que nuestro archivo de JavaScript se visualiza en el navegador.
😀
Scope Local✅
El scope local se genera una ves que comenzamos una funcion, adentro de esa función a eso se le llama Scope local.
Entendi completamente hasta que dio el ejemplo de las hormigas xd
Adjunto un pequeño resumen visual que hice como apuntes de la clase 😃
Podemos definir ‘Scope’ como el alcance que tendrá una variable en el código. Además del de las hormigas, el ejemplo que más me funcionó es este: la variable local es como algo que está en tu casa, la variable global es algo que está en la calle: desde tu casa puedes ver lo que está adentro Y lo que está en la calle, pero desde la calle no se puede ver lo que hay dentro de tu casa.
Scope
Es el alcance de una variable, el acceso a ella depende de donde fue declarada.
Scope global:
Tendrás acceso a ella desde cualquier parte del código.
Es el todo.
Scope local:
Sucede cuando declaras la variable dentro de una función
Tendrás acceso a ella solo desde la función donde fue declarada
Es un pequeño universo dentro del scope global
Resumen: Hay dos tipos de scope, uno GLOBLA y otro LOCAL. El scope global no puede acceder a lo que esta dentro del scope local PERO el scope LOCAL si puede acceder a lo que esta dentro del GLOBAL. Te recomiendo leer el tema anterior de funciones mas los comentarios para enteder a profundidad el SCOPE. Saludos.
//Scope global
var nombre = "Diego";
//Scope local
function fun(){
var apellido = "Arteaga"; //Scope local
return nombre + " " + apellido;
}
// fun() va a retornar "Diego Arteaga" desde el codigo se tiene alcance a la variable nombre pero no a apellido.
Resumen Clase: Si logramos entender el Scope vamos a evitar muchos problemas a futuro cuando estemos trabajando con código o cuando estemos en un equipo desarrollando algo. Que es el Scope en internet dicen que es el alcance que tienen las variables, pero mirando mas allá es donde se declare e inicies una variable para poder tener acceso a ella o no.
El Scope se inicializa cuando entramos al navegador y cargamos los archivos de JavaScript de nuestro proyecto, esto es un Scope global.
Tenemos dos tipos de Scope que son el Scope global que es como el todo del programa, Y el Scope local que es una parte del scope global. En el Scope global van a existir todas las variables, todas las validaciones, todas las funciones que nosotros tengamos ahí van a existir.
Una vez que nosotros iniciamos una función en ese momento adentro de esa función se generara un Scope local, que quiere decir que todo lo que esta dentro de la función va tener acceso a esto mismo. Desde un Scope local o funiocn podemos tener acceso a una variable que esta en nuestro Scope Global. Desde el Scope global no puede acceder a una variable que eta en un Scope local.
scope humanos
scope hormigas
Muy claro … 😂
Me surgió esta duda y la probé. Que pasa cuando accedemos desde el scope local a una variable del global cuando localmente tenemos una variable del mismo nombre que en global. Se muestra la local por definicion de JS al parecer.
`var nombre=“Fede”;
function mostrar(){
var nombre="Juan";
console.log(nombre);
}
mostrar();`
`var nombre=“Fede”;
function mostrar(){
var n="Juan";
console.log(nombre);
}
mostrar();`
Fede
Próximos pasos
El tema de Scope es amplio, y solo abarcamos un poco sin tener en cuenta su comportamiento con las nuevas declaraciones de variables let y const, por lo que te recomiendo seguir el Curso de Closures y Scope en JavaScript. https://platzi.com/cursos/javascript-closures-scope/
Solamente como un aporte adicional; también se pueden declarar e inicializar las variables al inicio del código, de esta forma hacen parte del scope global y se pueden llamar sin ningún problema:
var miNombre = "Petronila";
var miApellido = "de los Angeles";
function name() {
console.log(miNombre + " " + miApellido);
}
name();
Con esto debe aparecer el resultado que queremos (el nombre + el apellido), y con lo siguiente podemos llamar las dos variables:
miNombre;
miApellido;
var miNombre = "Armando" //La variable miNombre es declarada en el código padre, por ende, tiene scope global.
function nombre(){
var miApellido = "Chávez" //La variable miApellido es declarada dentro de una función por ende, tiene un scope limitado a esa función.
console.log(miNombre + " " + miAppellido);
}
nombre() //Al invocar la función, esta muestra en consola la concatenación de las dos variables. Una siendo local de la misma función y la otra global.
"Armando Chávez" //El resultado es satisfactorio, ya que la función tiene acceso a ambas variables.
miNombre //Comprobamos que la variable miNombre es reconocida dentro o fuera de la función, ya que tiene un scope global.
"Armando"
miAppelido //Comprobamos que la variable miAppellido NO es reconocida fuera de la función dónde fue declarada, porque tiene un scope local.
Uncaught ReferenceError: miApellido is not defined.
Este tema ya fue “resueto” o saldado por la fundación, al agregar LET, como variable de bloque o local.
Como recomendacion, eviten usar variables globales a toda costa, en el mundo de la programacion son muy mal vistas, pues es una mala practica, y ¿Por que? Pues bien, si te toca darle mantenimiento a un codigo y ves una variable global, y la borras ¿Como sabes a cuantas funciones afectaste? exacto, no sabes, porque es muy dificil darle seguimiento.
Si eres Ant-Man, si podrías acceder al mundo de las hormigas. 😃
LET y CONST pueden usarse en todos los scope, pero VAR no tiene scope de bloque (si se utiliza, se comportará como scope de función).
Lo resumí así:
scope = alcance o campo de aplicación, es decir que se refiere al nivel de acceso en el caso de las variables que pueden ser globales y locales.
SCOPE GLOBAL Vs SCOPE LOCAL
SCOPE GLOBAL
Cuando tenemos el navegador y
decir el universo un ejemplo
var miNombre =“Camilo”;
la variable “var” esta desde
SCOPE LOCAL
Al crear la function es cuand
function tendremos acceso a e
var miNombre =“Camilo”;
function nombre(){
var miApellido ="Mejia Ra
console.log(miNombre + "
}
nombre();
Camilo Mejia Ramirez
En este caso function nombre
console.log le decimos que me
Ramirez.
Solo Scope local tiene acceso
no tienen acceso a Scope Loca
miNombre
’Camilo’
miApellido
VM2150:1 Uncaught ReferenceEr
at <anonymous>:1:1
(anonymous) @ VM2150:1
Para entender este tema te doy este ejemplo;
Imagínate que estamos en el mundo de Dragón ball y él es JavaScript.
Los super sayayines puede leer tu KI (funcíon global).
Los humanos no pueden leer el KI, pero si pueden autoconocer su propia fuerza y alcances. (función local).
Cuando Goku llega a la tierra pueden detectar el KI de todos los seres humanos y cualquier que emita energia.
Usted como mortal y pariente de Mr. Satan, no puedes leer el KI. Pero si puedes conocer tu fuerza.
Agregué la variable a la función “hey” y me da esto:
// variable Global
var nombreGlobal = "Esto es una variable global"
function global(){
nombreGlobal;
console.log(nombreGlobal)
}
global()
// variable local
function local(){
var nombrelocal = "Esto es una variable local";
console.log(nombrelocal);
var localF = function(){
var nombrelocal = "variable anidada"
console.log(nombrelocal)
}
localF()
}
local()
En un curso que es dictado por Freddy vega, el nos explica lo mismo y nos dice que podemos declarar un variable fuera de una función y usarla dentro de una función, pero no podemos declarar una variable dentro de una función y usarla fuera de esa función, ya que la variable declarada dentro de una función solo existe dentro de la función
var miNombre = "Rafa"; //Esta variable existirá en todo mi proyecto//
function nombre () {
var miApellido = " Osorio"; //Esta variable solo existe dentro de esta función//
console.log (miNombre + " " + miApellido);
};
Les recomiendo este artículo que está bien detallado sobre scope
https://developer.mozilla.org/en-US/docs/Glossary/Scope
Escope Global: "Todo lo mío es tuyo"
Escope Local: “todo lo tuyo es mío y lo mío es mío”
😃
¿Que es el Scope en JavaScript? … El scope de una variable hace referencia al lugar donde esta va a vivir , o podrá ser accesible. Podríamos decir también que scope es el alcance que determina la accesibilidad de las variables en cada parte de nuestro código.
Para complementar mi aporte:
Estan los Scope Global y Local, y local a su vez se subdivide en dos categorias. Ahora, explicando de manera más acertada:
Global scope: son variables que se declaran fuera del bloque de código, bien sea al inicio del navegador o fuera de las funciones.
Block scope: son funciones declaradas dentro de bloques de codigo como ciclos, y usan las palabras reservadas let y const.
Function scope: son variables accesibles dentro de la funcion, pero no fuera de la misma. Y se declaran con la palabra reservada var.
Esto tiene que ver con POO, con encapsulamiento 😄
En Scope local podemos acceder a todo lo que está en el Scope global pero en el Scope global no podemos acceder a lo que está dentro de un Scope local
El SCOPE también afecta a una función dentro de otra función.
La función minombre recibe un string y la funcion firstToUpper cambia la primera letra en mayúscula
function minombre(name) {
name = Toupper(name);
function firstToUpper(name) {
return name.charAt(0).toUpperCase()+ name.slice(1)
}
return name;
}
console.log(minombre("jossie")); //"Jossie"
console.log(Toupper("quintero")); //"ReferenceError: Toupper is not defined"
En esta clase entendí el acceso a las variables que jamás entendí muy bien que digamos en la U
Scope local (hormigas) se puede acceder al Scope global (humanos), pero NO se puede del global al local. (ej. Los humanos no robamos comida de las hormigas)
Acabe el curso pero no le entendí al 100 %, me espere un día hasta volver a ver lo que no me quedo claro a velocidad 1.25 y esta super fácil. Se me están aclarando todas mis dudas. Soy el único así???
Bien lo dijo Freddy, no deberías de sentirte mal de repetir un video incluso 20 veces con tal de que te quede claro.
Pequeño vídeo explicando en qué consiste el concepto Scope 🌍
Impresionante, ya conocía del tema sobre el Scope, pero siempre pensé que al declarar con Var la variable inmediatamente quedaría en el entorno global independiente si era declarada dentro de una función. Algo nuevo que aprender 😃 , gracias!
Que buena clase!!
El contexto actual de ejecución. El contexto en el que los valores y las expresiones son “visibles” o pueden ser referenciados. Si una variable u otra expresión no está “en el Scope- alcance actual”, entonces no está disponible para su uso. Los Scope también se pueden superponer en una jerarquía, de modo que los Scope secundarios tengan acceso a los ámbitos primarios, pero no al revés.
Una función sirve como un cierre en JavaScript y, por lo tanto, crea un ámbito, de modo que (por ejemplo) no se puede acceder a una variable definida exclusivamente dentro de la función desde fuera de la función o dentro de otras funciones. Por ejemplo, lo siguiente no es válido:
function exampleFunction() {
var x = "declarada dentro de la función"; // x solo se puede utilizar en exampleFunction
console.log("funcion interna");
console.log(x);
}
console.log(x); // error
Sin embargo, el siguiente código es válido debido a que la variable se declara fuera de la función, lo que la hace global:
var x = "función externa declarada";
exampleFunction();
function exampleFunction() {
console.log("funcion interna");
console.log(x);
}
console.log("funcion externa");
console.log(x);
Fuente: Glosario MDN
En caso que te interese adentrarte en el mundo de las hormigas y ver que alimentos les podriamos tomar! 😁
Los Scope se pueden superponer en una jerarquía, de modo que los Scope secundarios tengan acceso a los ámbitos primarios, pero no al revés.
ese ejemplo de las hormigas lo fue todo, grande Diego
Excelente el ejemplo de las hormigas!!
Qué es el Scope
El scope es el alcance de una variable, puede ser de dos tipos, global y local. Una variable cuyo scope es global se puede acceder desde cualquier parte del código, una local solo desde la función que la contiene. Ejemplo:
var a = 1;
function global() {
console.log(a);
}
global();
console.log(a);
En ese caso a es una variable global ya que podemos acceder tanto fuera como dentro de una función debido a haberla definido fuera de cualquier función.
function local() {
var a = 2;
console.log(a);
}
local();
console.log(a);
En este otro caso, la variable a es local ya que la definimos dentro de la función local(), esto quiere decir que solo podemos acceder a ella dentro dicha función, cuando ejecutamos local() te muestra correctamente 2, mientras que si haces console.log(a) te va a dar error porque a no esta definida, para el scope global esa variable no existe.
Aquí les dejo mi aporte espero les sirva:
/*Viendo scope con var*/
var nombre = "Emiliano"; // = SCOPE GLOBLAL
function fun() {
var apellido = "Luna"; // = SCOPE LOCAL
return nombre + " " + apellido;
}
fun(); /*Me va a devolver `Emiliano Luna` porque mi función fun() está llamando a mi variable global nombre.*/
console.log(apellido); /* En este caso no te va devolver nada porque estás llamando a una variable local */
ese sentimiento de aprender lo que te apasiona no tiene precio❤❤❤❤
Espero mis apuntes les sean de ayuda. 😄
Si entendemos que es el Scope, podemos evitar muchos problemas a futuro cuando estemos trabajando con código o con un equipo.
El Scope es el alcance que tienen las variables, depende mucho de dónde declaremos e inicialicemos variables, de si vamos a tener acceso a ellas o no.
Scope Global
Cuando estamos trabajando en un archivo de JavaScript y tenemos el código, este código y este archivo se inicializa en el navegador, en ese momento se va a inicializar algo llamado Scope Global. Existen 2 tipos de Scope, el global y el local.
En este Scope Global van a existir todas las variables, todas las validaciones que nosotros tengamos.
En nuestro Scope Global tenemos una variable de nombre que se llama “Iris”
//Scope global
var nombre ="Iris";
Scope Local
En el momento que inicializamos una función, se va a generar algo llamado Scope Local. Quiere decir que solo lo que está adentro de la función va a tener acceso a eso mismo.
Aquí le estamos pidiendo a la función que nos regrese la variable que está en Scope global que se llama “Iris” y la variable que está en local que se llama “Apellido”
function fun() {
var apellido ="Barrios";
return nombre+""+apellido
}
Si yo mando a llamar la función nos regresaria
fun(); //Iris Barrios
Como decíamos, esto pasa porque se genera un Scope local y en este Scope Local podemos tener acceso a las variables que están en Scope Global. Pero esto es muy diferente si en Scope Global intento acceder a las variables de Scope Local, no se podría. Todo lo que está en Global, no puede acceder a lo que está en Local.
Si generaramos un console.log con “Apellido” desde nuestro Scope Global, nos mostraría que no está definido.
function fun(){
var apellido ="Barrios"
return nombre+""+apellido
}
//console.log(apellido);
//apellido is not defined
Por esto es importante entender que tenemos 2 Scope, Global y Local. Lo que está en Local puede acceder a lo que tenemos en Global. Pero lo que tenemos en Global, no va a poder acceder a lo que tenemos en Local.
Variables Global= Podemos acceder a ella desde cualquier parte del código
Variable Local = solo se puede acceder a ella desde su funcioón
Scope
El alcance que tiene las variables en el código, depende de donde se declare la variable tendrás acceso a ella.
Global: Las variables se pueden acceder desde cualquier parte del código,
Local: Solo es accesible dentro de un bloque de código.
Ejemplo ilustrativo:
SCOPE LOCAL
SCOPE GLOBAL
Excelente forma de explicar.
Existen 2 tipos de Scope:
Global → Inicializa en el Navegador. Es el universo
Local → Reside dentro del Global. Está dentro de la función.
<var miNombre = "Fernando"
function nombre(){
var miApellido = "Galdos";
console.log(miNombre + " " + miApellido)
}>
ah ok, Scope hace referencia a la “Accesibilidad” en C# o Java, que la manejas con las palabras reservadas: Private, Public.
Que buena analogia de los humanos y las hormigas.
El scope de una variable hace referencia al lugar donde esta va a vivir , o podrá ser accesible.
Podríamos decir también que scope es el alcance que determina la accesibilidad de las variables en cada parte de nuestro código.
¿Y para qué nos sirve el Scope?
Entender bien el concepto de scope nos ayudará a aumentar el nivel de seguridad ya que delimita quienes tienen acceso y quienes no a determinadas partes de nuestro código, también nos facilitará en la detección y disminución de errores, por ende nuestro código será más robusto.
Tipos de Scope
En Javascript tenemos distintos tipos de Scopes:
Global Scope
Se dice que una variable se encuentra en el scope global cuando está declarada fuera de una función o de un bloque. Vamos a poder acceder a este tipo de variables desde cualquier parte de nuestro código, ya sea dentro o fuera de una función.
Local Scope
Las variables que definimos dentro de una función son variables locales, es decir se encuentran en el Scope local. Esto significa que este tipo de variables van a vivir únicamente dentro de la función en donde las hayamos declarado y si intentamos accederlas fuera de ella, dichas variables no van a estar definidas.
Esto nos permite decidir si queremos una variable solo para una determinada función.
Scope: El contexto en el que los valores y las expresiones son visibles o pueden ser referenciados. Si una variable u otra expresión no está en el Scope- alcance actual, entonces no está disponible para su uso. Los Scope también se pueden superponer en una jerarquía, de modo que los Scope secundarios tengan acceso a los ámbitos primarios, pero no al revés.
Actualmente el Scope en JavaScript es a nivel de llaves, es decir, tu no puedes acceder a una variable que esté declarada dentro de un if por ejemplo desde el scope global
Scope: Es el alcance que tienen las variables. Dependerá de donde se declare y donde se inicialice para tener acceso a ella.
Scope Global: es como el todo, es decir que la variable se puede usar en cualquier parte del codigo.
Scope Local: las variables solo se podrán llamar dentro de esa función.
var miNombre = "Joiler ";
function nombre(){
var miApellido = "Diaz";
console.log(miNombre + " " + miApellido);
}
nombre();
VM1414:5 Joiler Diaz
undefined```
Scope en JavaScript 😄
Es el alcance que tienen las Variables.
Existen 2 tipos de Scope:
La función puede hacer uso del Scope global, pero el Scope local no tiene acceso al Scope Local.
Excelente Clase!
Hola, les comparto mis apuntes para esta clase.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?