Educación online efectiva

Aprende con expertos de la industria

COMPARTE ESTE ARTÍCULO Y MUESTRA LO QUE APRENDISTE

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"
let otroTitulo = "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)

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

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

unaFuncion()
console.log(variable)

> Ahora soy una variable local
> Soy una variable global

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 = () => {
  var variable = "Ahora soy una variable local"
  const scopeFuncion = () => {
    return variable
  }
  console.log(scopeFuncion())
}

unaFuncion()
console.log(variable)

> Ahora soy una variable local
> 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 = () => {
    return variable
  }
  console.log(scopeFuncion())
}

unaFuncion()
console.log(variable)

> Ahora soy una variable local
> Ahora soy una variable local

Educación online efectiva

Aprende con expertos de la industria

COMPARTE ESTE ARTÍCULO Y MUESTRA LO QUE APRENDISTE

0 Comentarios

para escribir tu comentario

Artículos relacionados