ES6 - Variables

ES6 - Variables


Una variable , por definiciĆ³n, es "un espacio nombrado en la memoria" que almacena valores. En otras palabras, actĆŗa como un contenedor de valores en un programa. Los nombres de variables se llaman identificadores . Las siguientes son las reglas de denominaciĆ³n para un identificador-
  • Los identificadores no pueden ser palabras clave.
  • Los identificadores pueden contener letras y nĆŗmeros.
  • Los identificadores no pueden contener espacios ni caracteres especiales, excepto el guiĆ³n bajo (_) y el signo de dĆ³lar ($).
  • Los nombres de las variables no pueden comenzar con un nĆŗmero.


Tipo de sintaxis

Una variable debe declararse antes de ser utilizada. La sintaxis de ES5 usaba la palabra clave var para lograr lo mismo. La sintaxis de ES5 para declarar una variable es la siguiente.


//Declaration using var keyword 
var  variable_name
ES6 introduce la siguiente sintaxis de declaraciĆ³n de variable:
  • Usando el let.
  • Usando la const.
InicializaciĆ³n de variable se refiere al proceso de almacenar un valor en la variable. Una variable puede inicializarse en el momento de su declaraciĆ³n o en un momento posterior.
La sintaxis tradicional del tipo ES5 para declarar e inicializar una variable es la siguiente:


//Declaration using var keyword 
var variable_name = value

Ejemplo: uso de variables

var name = "Tom" 
console.log("The value in the variable is: "+name)
El ejemplo anterior declara una variable e imprime su valor.
El siguiente resultado se muestra en ejecuciĆ³n exitosa.
The value in the variable is Tom

JavaScript y escritura dinƔmica

JavaScript es un lenguaje sin tipeo. Esto significa que una variable de JavaScript puede contener un valor de cualquier tipo de datos. A diferencia de muchos otros idiomas, no es necesario indicarle a JavaScript durante la declaraciĆ³n de variables quĆ© tipo de valor tendrĆ” la variable. El tipo de valor de una variable puede cambiar durante la ejecuciĆ³n de un programa y JavaScript se ocupa de ello automĆ”ticamente. Esta caracterĆ­stica se denomina tipeo dinĆ”mico .


Alcance de JavaScriptVariable

El alcance de una variable es la regiĆ³n de su programa en el que estĆ” definida. Tradicionalmente, JavaScript define solo dos Ć”mbitos: global y local.
  • Alcance global: se puede acceder a una variable con alcance global desde cualquier parte del cĆ³digo JavaScript.
  • Alcance local: se puede acceder a una variable con alcance local desde una funciĆ³n donde se declara.


Ejemplo: variable global vs. local

El siguiente ejemplo declara dos variables por el nombre num - uno fuera de la funciĆ³n (alcance global) y la otra dentro de la funciĆ³n (alcance local).
var num = 10 
function test() { 
   var num = 100 
   console.log("value of num in test() "+num) 
} 
console.log("value of num outside test() "+num) 
test()
La variable cuando se hace referencia dentro de la funciĆ³n muestra el valor de la variable de Ć”mbito local. Sin embargo, la variable num cuando se accede fuera de la funciĆ³n devuelve la instancia con Ć”mbito global.


El siguiente resultado se muestra en ejecuciĆ³n exitosa.
value of num outside test() 10
value of num in test() 100
ES6 define un nuevo alcance variable: el alcance del Bloque.

El alcance de Let and Block

El alcance del bloque restringe el acceso de una variable al bloque en el que se declara. La palabra clave var asigna un alcance de funciĆ³n a la variable. A diferencia de la palabra clave var, la palabra clave let permite que el script restrinja el acceso a la variable al bloque circundante mĆ”s cercano.


"use strict" 
function test() { 
   var num = 100 
   console.log("value of num in test() "+num) { 
      console.log("Inner Block begins") 
      let num = 200 
      console.log("value of num : "+num)  
   } 
} 
test()
El script declara una variable num dentro del alcance local de una funciĆ³n y la vuelve a declarar dentro de un bloque usando la palabra clave let. El valor de la variable de Ć”mbito local se imprime cuando se accede a la variable fuera del bloque interno, mientras que la variable de Ć”mbito de bloque se refiere al bloque interno.
Nota : el modo estricto es una forma de optar por una variante restringida de JavaScript.
El siguiente resultado se muestra en ejecuciĆ³n exitosa.


value of num in test() 100 
Inner Block begins 
value of num : 200

Ejemplo: let v / s var

var no = 10; 
var no = 20; 
console.log(no);
La siguiente salida se muestra en la ejecuciĆ³n exitosa del cĆ³digo anterior.
20
Vamos a volver a escribir el mismo cĆ³digo con la palabra clave let .
let no = 10; 
let no = 20; 
console.log(no);
El cĆ³digo anterior generarĆ” un error: el identificador 'no' ya ha sido declarado. Cualquier variable declarada usando la palabra clave let se le asigna el alcance del bloque.


La const

La declaraciĆ³n const crea una referencia de solo lectura a un valor. No significa que el valor que tiene es inmutable, solo que el identificador de la variable no puede ser reasignado. Las constantes tienen un Ć”mbito de bloque, al igual que las variables definidas mediante la instrucciĆ³n let. El valor de una constante no puede cambiar a travĆ©s de la reasignaciĆ³n y no se puede volver a declarar.
Las siguientes reglas son ciertas para una variable declarada usando la palabra clave const -
  • Las constantes no pueden reasignarse a un valor.
  • Una constante no puede ser re-declarada.
  • Una constante requiere un inicializador. Esto significa que las constantes deben inicializarse durante su declaraciĆ³n.
  • El valor asignado a una variable const es inmutable.


Ejemplo

const x = 10 
x = 12 // will result in an error!!
El cĆ³digo anterior devolverĆ” un error ya que las constantes no pueden reasignarse a un valor. Las constantes variables son inmutables.



ES6 y elevaciĆ³n variable

El alcance de una variable declarada con var es su contexto de ejecuciĆ³n actual, que es la funciĆ³n adjunta o, para las variables declaradas fuera de cualquier funciĆ³n, global. El izado variable permite el uso de una variable en un programa de JavaScript, incluso antes de que se declare.
El siguiente ejemplo explica mejor este concepto.


Ejemplo: elevaciĆ³n variable

var main = function() { 
   for(var x = 0;x<5;x++) { 
      console.log(x); 
   } 
   console.log("x can be accessed outside the block scope x value is :"+x); 
   console.log('x is hoisted to the function scope'); 
} 
main();     
La siguiente salida se muestra en la ejecuciĆ³n exitosa del cĆ³digo anterior.
0
1
2
3
4
x can be accessed outside the block scope x value is :5
x is hoisted to the function scope 
El motor de JavaScript representa internamente el script como -


var main = function() { 
   var x; // x is hoisted to function scope 
   for( x = 0;x<5;x++) { 
      console.log(x); 
   }  
   console.log("x can be accessed outside the block scope x value is :"+x); 
   console.log('x is hoisted to the function scope'); 
} 
 main(); 
Nota : El concepto de elevaciĆ³n se aplica a la declaraciĆ³n de variable pero no a la inicializaciĆ³n de la variable. Se recomienda declarar siempre las variables en la parte superior de su alcance (la parte superior del cĆ³digo global y la parte superior del cĆ³digo de la funciĆ³n), para permitir que el cĆ³digo resuelva el alcance de la variable.

No comments