Breaking News

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