Curso de Closures y Scope en JavaScript 2020

Toma las primeras clases gratis

COMPARTE ESTE ARTÍCULO Y MUESTRA LO QUE APRENDISTE

Scope: Es el que se encarga de a que bloque de codigo va acceder una variables.

Local Scope:permite acceder a una variable solamente en este bloque de codigo.

let persona= ()=>{
//local scope
let nombre='victor';
return nombre;}
//global scope
//la variabe nombre esta definida en la funcion osea que se accede a la funcion persona para imprimir la variable
console.log(persona());
//este codigo da error por que la variable no esta definida en global scope
console.log(nombre);

Global Scope:el global scope tiene alcance directo a las variables o funciones ya que no se declaran adentro de bloques de codigo.

//Global scope
let numero=18;
//Se accede directamente ala variable ya que se declara enelglobal scope

console.log(numero);

Ambito Lexico: Cuando yo declaro dos variables del mismo tipo las llamo de forma igual como estas pueden convivir en el codigo sin modificar una a la otra, gracias al ambito lexico esto se refiere a que las dos variables pueden convivir en el mismo codigo si una esta declarada en un ambito diferente de la otra.

//Global scope
let nombre='victor';

functionpersona() {
    //local scope
    let nombre='carlos';
    return nombre;
}
//imprimira la variable que esta declarada en global scope
console.log(nombre);

//imprimira la varible declarada en local scope 
console.log(persona());

//las dos variables conviven juntas pero en dos ambitos diferentes

Closures: Es una funcion interna que tiene alcance a su funcion padre aun despues de ejecutarse un return.

//funcion padre
const moneyBox = () => {
    let saveCoins = 0
    //funcion hija
    const countCoins = (coins) => {
        //accede a la variable de la funcion padre
        saveCoins += coins
        console.log(`MoneyBox: $${saveCoins}`)
    }
    return countCoins
}
let myMoneyBox = moneyBox()
myMoneyBox(4)// 4
myMoneyBox(6)// 6
myMoneyBox(10)// 10

Ambito Lexico en Closure: el closure se puede ejecutar en dos variables distintas y no se afectan entre si.

const buildCount = i => {
    let count = i;
    const displayCount = () => {
      console.log(count++);
    };
    return displayCount;
  };

  //hay dos scope
  const myCount = buildCount(1);
  myCount(); // 1
  myCount(); // 2
  myCount(); // 3

  const myOtherCount = buildCount(10);
  myOtherCount(); // 10
  myOtherCount(); // 11

Hoisting
Se refiere a la elevacion de funciones y variables que hace javascript al momento de compilar el codigo.
lista de elevados

  • var = se eleva solo la declaracion

  • function= se eleva completo

  • importo=se eleva completo

  • clases=no se elevan

//esta simple declaracion 
var a=1
//puede ser igula a esta
var a;
a=1;
//aqui vemos un ejemplo de como javascript imterpreta la primera declaracion

Curso de Closures y Scope en JavaScript 2020

Toma las primeras clases gratis

COMPARTE ESTE ARTÍCULO Y MUESTRA LO QUE APRENDISTE

0 Comentarios

para escribir tu comentario

Artículos relacionados