Preview:
/*variables 
//varible no declarada:
  x => siempre son globales; supongo que se cargan antes de todo ;
       pero si estan para reasignar una x ya declarada entonces se limitan a su escope.
  NOTA: var: puede ser reasignada con "x = algo" p "var x = algo"  es como si redeclaramos y                                                                                      reasignamos 
       
// variables declaradas: se limitan al contexto de efecución.
  var x ,let x,=> no necesitan ser inicializadas(tener un valor inicial)=> sin inicio sera undefine
  -- su diferencia sera anivel del scope.
  
//
const x = algo; => deven ser inicializadas(no tendria sentido sin su inicio) =>si no lleva inicio su error es de sintaxis.
*/

// var => escope = a nivel de función
// let y const => scope = a nivel de block(un bloque puede ser una función,if,for, while, etc...)

// reasignas let  x = numero; el valor de x cambia a nivel de scope, entrando a bloques internos; pero si la variable x fue "redeclarada" en ese bloque entoces su valor es ese nuevo, y si lo reasignamos, solo sera al nuevo x readeclarado; que mantendra ese valor reasignado solo dentro del bloque.
// reasignas var x = numero; el valor de x cambia a nivel de scope(la función), si redeclaramos x dentro de un bloque y tambien reasignamos; entonces tanto afuera como dentro de ese blocque tendra el ultimo valor reasignado asta donde es llamado.


//IMPORTANTE:
-- La reasignación sucede dentro de su bloque, sino no es reasignación.
--let y const  "si se pueden redeclarar, pero en otro bloque no nesesariamente hijo"
-- const => "no se puede reasignar en su bloque ni en otro bloque "hijo" " si se le rasigna en otro              bloque eso ya no es reasignación... estarias poniendo otra variable sin declararla.


downloadDownload PNG downloadDownload JPEG downloadDownload SVG

Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!

Click to optimize width for Twitter