No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Scope

8/29
Recursos

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).

Tipos de scope

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.

Representaci贸n de los tipos de scope

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.

Qu茅 es el scope global

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.

Qu茅 es el 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.

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.

Contribuci贸n creada por Andr茅s Guano (Platzi Contributor).

Aportes 591

Preguntas 68

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

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:

Link: https://www.youtube.com/watch?v=s-7C09ymzK8

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: 鈥淰ar鈥, 鈥淐ONST鈥, y 鈥渓et鈥.
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:

  • Global: Donde van a estar las funciones y variables que se puedan usar fuera de las funciones.
  • Local: Variables encontradas dentro de funciones.

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 鈥楽cope鈥 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.
Me encant贸 la explicaci贸n, sab铆a lo pr谩ctico, pero no sab铆a el nombre por el cual se le llamaba... Scope. Progresando en Javascript. PD: AntMan si puede.

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=鈥淔ede鈥;

function mostrar(){

var nombre="Juan";
console.log(nombre);

}

mostrar();`

Juan

`var nombre=鈥淔ede鈥;

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 鈥渞esueto鈥 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 =鈥淐amilo鈥;

la variable 鈥渧ar鈥 esta desde

SCOPE LOCAL

Al crear la function es cuand
function tendremos acceso a e

var miNombre =鈥淐amilo鈥;
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
鈥機amilo鈥

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 鈥渉ey鈥 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: 鈥渢odo 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 鈥渧isibles鈥 o pueden ser referenciados. Si una variable u otra expresi贸n no est谩 鈥渆n 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. 馃槃

Scope

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 鈥淚ris鈥

//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 鈥淚ris鈥 y la variable que est谩 en local que se llama 鈥淎pellido鈥

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 鈥淎pellido鈥 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 鈥淎ccesibilidad鈥 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:

  • Scope Global: Todas las variables y funciones que declaremos.
  • Scope Local: Solo lo que esta adentro de la funci贸n tiene acceso a si mismo.

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.