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;
Elevado al poder de
var a = 3,
b = 15;
b **= a;
b
será ahora 3375
Esto es funcionalmente lo mismo que
b = b ** a;