1

Scope global y local en Javascript

El scope es el alcance (accesibilidad) que va a tener la variable dentro del código.

Scope global

Es aquel que permite a las variables, ser accesibles en todo el código de javascript. Con accesible, me refiero a obtener el valor de su contenido o a modificarlo, las variables globales se declaran con la palabra reservada var``let``const siempre que no esten dentro de ninguna función

var titulo = "Hello world"letotroTitulo = "Nuevo Hello world"variableGlobal = "Esta es una variable global"

🚫 Se puede declar una variable sin palabra reservada:

variableGlobal = "Esta es una variable global"

pero es una mala práctica

Scope local

Es el alcance o el acceso que tienen las variable definidas dentro de un bloque de código: una función, un bloque condicional o un ciclo.

Las variable de bloque, son declaradas con let``const

const helloWorld = () => {
  const hello = "hello world"console.log(hello)
}
// Aqui no es accesible hello

Toda variable declarada dentro de una función tiene scope local o scope léxico, es decir, existen solo dentro de ese bloque (salvo que se declare sin palabra reservada)

varvariable = "Soy una variable global"// Esta variable es de alcance local

const unaFuncion = () => {
  varvariable = "Ahora soy una variable local"// Esta variable es de alcance local
  const scopeFuncion = () => {
    returnvariable
  }
  console.log(scopeFuncion())
}

unaFuncion()
console.log(variable)

> Ahora soy una variablelocal
> Soy una variableglobal

En este caso, si solo la declaramos dentro de la función, no podemos accederla fuera de la misma. Esto es debido al scope function

const unaFuncion = () => {
  varvariable = "Ahora soy una variable local"
  const scopeFuncion = () => {
    returnvariable
  }
  console.log(scopeFuncion())
}

unaFuncion()
console.log(variable)

> Ahora soy una variablelocal
> console.log(variable)
            ^
ReferenceError: variable is not defined

Ahora, veamos qué pasa si la declaramos dentro de a función sin palabra reservada, ya no tenemos el error, pero es una mala práctica

const unaFuncion = () => {
  variable = "Ahora soy una variable local"
  const scopeFuncion = () => {
    returnvariable
  }
  console.log(scopeFuncion())
}

unaFuncion()
console.log(variable)

> Ahora soy una variablelocal
> Ahora soy una variablelocal
Escribe tu comentario
+ 2