Buscar..


Sintaxis

  • var foo [= valor [, foo2 [, foo3 ... [, fooN]]]];
  • deje bar [= valor [, bar2 [, foo3 ... [, barN]]]];
  • const baz = valor [, baz2 = valor2 [, ... [, bazN = valorN]]];

Observaciones

Ver también:

Reasignar constantes

No puedes reasignar constantes.

const foo = "bar";
foo = "hello";

Huellas dactilares:

Uncaught TypeError: Assignment to constant.

Modificando constantes

Declarar una variable const solo evita que su valor sea reemplazado por un nuevo valor. const no pone ninguna restricción en el estado interno de un objeto. El siguiente ejemplo muestra que se puede cambiar el valor de una propiedad de un objeto const , e incluso se pueden agregar nuevas propiedades, porque el objeto asignado a la person se modifica, pero no se reemplaza .

const person = { 
    name: "John" 
};
console.log('The name of the person is', person.name);

person.name = "Steve";
console.log('The name of the person is', person.name);

person.surname = "Fox";
console.log('The name of the person is', person.name, 'and the surname is', person.surname);

Resultado:

The name of the person is John
The name of the person is Steve
The name of the person is Steve and the surname is Fox

En este ejemplo, hemos creado un objeto constante llamado person y hemos reasignado la propiedad person.name y hemos creado la nueva propiedad person.surname .

Declarar e inicializar constantes.

Puede inicializar una constante usando la palabra clave const .

const foo = 100;
const bar = false;
const person = { name: "John" };
const fun = function () = { /* ... */ };
const arrowFun = () => /* ... */ ;

Importante
Debe declarar e inicializar una constante en la misma declaración.

Declaración

Hay cuatro formas principales de declarar una variable en JavaScript: usando las palabras clave var , let o const , o sin una palabra clave en absoluto (declaración "bare"). El método utilizado determina el alcance resultante de la variable, o la reasignación en el caso de const .

  • La palabra clave var crea una variable de alcance de función.
  • La palabra clave let crea una variable de ámbito de bloque.
  • La palabra clave const crea una variable de ámbito de bloque que no se puede reasignar.
  • Una declaración simple crea una variable global.
var a = 'foo';    // Function-scope
let b = 'foo';    // Block-scope
const c = 'foo';  // Block-scope & immutable reference

Tenga en cuenta que no puede declarar constantes sin inicializarlas al mismo tiempo.

const foo; // "Uncaught SyntaxError: Missing initializer in const declaration"

(Un ejemplo de declaración de variable sin palabra clave no se incluye arriba por razones técnicas. Continúe leyendo para ver un ejemplo).

Tipos de datos

Las variables de JavaScript pueden contener muchos tipos de datos: números, cadenas, matrices, objetos y más:

// Number
var length = 16;

// String
var message = "Hello, World!"; 

// Array
var carNames = ['Chevrolet', 'Nissan', 'BMW']; 

// Object
var person = {
    firstName: "John",
    lastName: "Doe"
}; 

JavaScript tiene tipos dinámicos. Esto significa que la misma variable se puede utilizar como tipos diferentes:

var a;              // a is undefined
var a = 5;          // a is a Number
var a = "John";     // a is a String

Indefinido

La variable declarada sin un valor tendrá el valor undefined

var a;

console.log(a); // logs: undefined

Intentar recuperar el valor de las variables no declaradas da como resultado un error de referencia. Sin embargo, tanto el tipo de variables no declaradas como las unidades unificadas son "indefinidas":

var a;
console.log(typeof a === "undefined"); // logs: true
console.log(typeof variableDoesNotExist === "undefined"); // logs: true

Asignación

Para asignar un valor a una variable previamente declarada, use el operador de asignación, = :

a = 6;
b = "Foo";

Como alternativa a la declaración y asignación independientes, es posible realizar ambos pasos en una declaración:

var a = 6;
let b = "Foo";

Es en esta sintaxis que las variables globales pueden declararse sin una palabra clave; si uno declarara una variable simple sin una asignación inmediatamente después de la frase, el intérprete no podría diferenciar las declaraciones globales a; de referencias a variables a; .

c = 5;
c = "Now the value is a String.";
myNewGlobal;    // ReferenceError

Sin embargo, tenga en cuenta que la sintaxis anterior generalmente no se recomienda y no es compatible con el modo estricto. Esto es para evitar el escenario en el que un programador cae inadvertidamente una palabra clave let o var de su declaración, creando accidentalmente una variable en el espacio de nombres global sin darse cuenta. Esto puede contaminar el espacio de nombres global y entrar en conflicto con las bibliotecas y el correcto funcionamiento de un script. Por lo tanto, las variables globales deben declararse e inicializarse utilizando la palabra clave var en el contexto del objeto de ventana, en su lugar, de manera que la intención se declare explícitamente.

Además, las variables se pueden declarar varias a la vez separando cada declaración (y la asignación de valor opcional) con una coma. Usando esta sintaxis, las palabras clave var y let solo deben usarse una vez al principio de cada declaración.

globalA = "1", globalB = "2";
let x, y = 5;
var person = 'John Doe',
    foo,
    age = 14,
    date = new Date(); 

Observe en el fragmento de código anterior que el orden en el que aparecen las expresiones de declaración y asignación ( var a, b, c = 2, d; ) no importa. Puedes mezclar libremente los dos.

La declaración de función crea efectivamente variables, también.

Operaciones matemáticas y asignación.

Incremento por

var a = 9,  
b = 3;  
b += a;  

b será ahora 12

Esto es funcionalmente lo mismo que

b = b + a; 

Decremento por

var a = 9,  
b = 3;  
b -= a;  

b será ahora 6

Esto es funcionalmente lo mismo que

b = b - a;  

Multiplicar por

var a = 5,  
b = 3;  
b *= a;  

b será ahora 15

Esto es funcionalmente lo mismo que

b = b * a;  

Dividido por

var a = 3,  
b = 15;  
b /= a;  

b ahora será 5

Esto es funcionalmente lo mismo que

b = b / a;  

7

Elevado al poder de

var a = 3,  
b = 15;  
b **= a;  

b será ahora 3375

Esto es funcionalmente lo mismo que

b = b ** a;  


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow