MEJOR SITIO PARA DESARROLLADORES WEB

JS Tutorial

JS HOGAR JS Introducción JS A donde JS Producción JS Declaraciones JS Sintaxis JS Comentarios JS Variables JS Let JS Const JS Operadores JS Aritmética JS Asignación JS Tipos de datos JS Funciones JS Objetos JS Eventos JS Cadenas JS Métodos de cadena JS Búsqueda de cadenas JS Plantillas de cadenas JS Números JS Métodos numéricos JS Matrices JS Métodos de matriz JS Clasificación de matrices JS Iteración de matriz JS Array Const JS Fechas JS Formatos de fecha JS Métodos de obtención de fecha JS Métodos de configuración de fechas JS Math JS aleatorio JS Booleanos JS Comparaciones JS If Else JS Switch JS Bucle For JS Bucle For In JS Bucle For Of JS Bucle While JS Break JS Iterables JS Conjuntos JS Maps JS Tipo de JS Conversión de tipo JS Bitwise JS RegExp JS Errores JS Alcance JS Hoisting JS Modo estricto JS this palabra clave JS Función de flecha JS Clases JS Módulos JS JSON JS Depuración JS Guía de estilo JS Mejores prácticas JS Errores JS Rendimiento JS Palabras reservadas

JS Versiones

JS Versiones JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS 2019 JS 2020 JS 2021/2022 JS IE / Edge JS Historia

JS Objetos

Objeto Definiciones Objeto Propiedades Objeto Métodos Objeto Display Objeto Accesorios Objeto Constructores Objeto Prototipos Objeto Iterables Objeto Conjuntos Objeto Mapas Objeto Referencia

JS Funciones

Función Definiciones Función Parámetros Función Invocación Función Llamar Función Aplicar Función Unir Función Cierres

JS Clases

Clase Introducción Clase Herencia Clase Estático

JS Asíncrono

JS Devoluciones de llamada JS Asincrónico JS Promesas JS Async/Await

JS HTML DOM

DOM Introducción DOM Métodos DOM Documento DOM Elementos DOM HTML DOM Formularios DOM CSS DOM Animaciones DOM Eventos DOM Oyente de eventos DOM Navegación DOM Nodos DOM Colecciones DOM Listas de nodos

JS Navegador BOM

JS Ventana JS Pantalla JS Ubicación JS Historia JS Navegador JS Alerta emergente JS Momento JS Cookies

JS Web APIs

Web API Introducción API de formularios web API de historial web API de almacenamiento web API de trabajador web API de recuperación web API de geolocalización web

JS AJAX

AJAX Introducción AJAX XMLHttp AJAX Pedido AJAX Respuesta AJAX XML Archivo AJAX PHP AJAX ASP AJAX Base de datos AJAX Aplicaciones AJAX Ejemplos

JS JSON

JSON Introducción JSON Sintaxis JSON vs XML JSON Tipos de datos JSON Analizar JSON Stringificar JSON Objetos JSON Matrices JSON Servidor JSON PHP JSON HTML JSON JSONP

JS vs jQuery

jQuery Selectores jQuery HTML jQuery CSS jQuery DOM

JS Gráficos

JS Gráficos JS Canvas JS Plotly JS Chart.js JS Google Chart JS D3.js

JS Ejemplos

JS Ejemplos JS HTML DOM JS HTML Input JS HTML Objetos JS HTML Eventos JS Navegador JS Editor JS Ejercicios JS Prueba JS Bootcamp JS Certificado

JS Referencias

JavaScript Objetos HTML DOM Objetos

JavaScript. W3Schools en español. Lecciones para principiantes

Ua En De Fr

JavaScript Const palabra clave

La palabra clave const se introdujo en ES6 (2015).

Las variables definidas con const no se pueden volver a declarar.

Las variables definidas con const no se pueden reasignar.

Las variables definidas con const tienen alcance de bloque.

No se puede reasignar

Una variable const no se puede reasignar:

Ejemplo

const PI = 3.141592653589793;
PI = 3.14;      // Esto dará un error
PI = PI + 10;   // Esto también dará un error
Try it Yourself »

Debe ser asignado

A las variables JavaScript const se les debe asignar un valor cuando se declaran:

Correcto

const PI = 3.14159265359;

Incorrecto

const PI;
PI = 3.14159265359;

¿Cuándo utilizar JavaScript constante?

Como regla general, declare siempre una variable con const a menos que sepa que el valor cambiará.

Utilice const cuando declare:

  • Una nueva matriz
  • Un nuevo objeto
  • Una nueva función
  • Una nueva RegExp

Objetos constantes y matrices

La palabra clave const es un poco engañosa.

No define un valor constante. Define una referencia constante a un valor.

Debido a esto NO puedes:

  • Reasignar un valor constante
  • Reasignar una matriz constante
  • Reasignar un objeto constante

Pero PUEDES:

  • Cambiar los elementos de la matriz constante
  • Cambiar las propiedades del objeto constante

Matrices constantes

Puedes cambiar los elementos de una matriz constante:

Ejemplo

// Puedes crear una matriz constante:
const cars = ["Saab", "Volvo", "BMW"];

// Puedes cambiar un elemento:
cars[0] = "Toyota";

// Puedes agregar un elemento:
cars.push("Audi");
Try it Yourself »

Pero NO puedes reasignar la matriz:

Ejemplo

const cars = ["Saab", "Volvo", "BMW"];

cars = ["Toyota", "Volvo", "Audi"];    // ERROR
Try it Yourself »

Objetos constantes

Puedes cambiar las propiedades de un objeto constante:

Ejemplo

// Puedes crear un objeto constante:
const car = {type:"Fiat", model:"500", color:"white"};

// Puedes cambiar una propiedad:
car.color = "red";

// Puedes agregar una propiedad:
car.owner = "Johnson";
Try it Yourself »

Pero NO puedes reasignar el objeto:

Ejemplo

const car = {type:"Fiat", model:"500", color:"white"};

car = {type:"Volvo", model:"EX60", color:"red"};    // ERROR
Try it Yourself »

Soporte del navegador

La palabra clave const no es compatible con Internet Explorer 10 o versiones anteriores.

La siguiente tabla define las primeras versiones del navegador con soporte completo para la palabra clave const:

Chrome 49 IE 11 / Edge Firefox 36 Safari 10 Opera 36
Mar, 2016 Oct, 2013 Feb, 2015 Sep, 2016 Mar, 2016

Alcance del bloque

Declarar una variable con const es similar a let cuando se trata de Block Scope.

La x declarada en el bloque, en este ejemplo, no es la misma que la x declarada fuera del bloque:

Ejemplo

const x = 10;
// Aquí x es 10

{
const x = 2;
// Aquí x es 2
}

// Aquí x es 10
Try it Yourself »

Puede obtener más información sobre el alcance del bloque en el capítulo Alcance de JavaScript.


Redeclaración

Se permite redeclarar una variable var de JavaScript en cualquier parte de un programa:

Ejemplo

var x = 2;     // Permitido
var x = 3;     // Permitido
x = 4;         // Permitido

Redeclarar una variable var o let existente a const, en el mismo ámbito, no se permite:

Ejemplo

var x = 2;     // Permitido
const x = 2;   // No permitido

{
let x = 2;     // Permitido
const x = 2;   // No permitido
}

{
const x = 2;   // Permitido
const x = 2;   // No permitido
}

No se permite reasignar una variable const existente, en el mismo ámbito:

Ejemplo

const x = 2;     // Permitido
x = 2;           // No permitido
var x = 2;       // No permitido
let x = 2;       // No permitido
const x = 2;     // No permitido

{
  const x = 2;   // Permitido
  x = 2;         // No permitido
  var x = 2;     // No permitido
  let x = 2;     // No permitido
  const x = 2;   // No permitido
}

Se permite redeclarar una variable con const, en otro alcance o en otro bloque:

Ejemplo

const x = 2;       // Permitido

{
  const x = 3;   // Permitido
}

{
  const x = 4;   // Permitido
}

Elevación constante

Las variables definidas con var se elevan a la parte superior y se pueden inicializar en cualquier momento.

Significado: Puede utilizar la variable antes de declararla:

Ejemplo

Esto está bien:

carName = "Volvo";
var carName;
Try it Yourself »

Si quieres aprender más sobre izado, estudia el capítulo Elevación con JavaScript.

Las variables definidas con const también se elevan a la parte superior, pero no se inicializan.

Significado: El uso de una variable const antes de declararla dará como resultado una ReferenceError:

Ejemplo

alert (carName);
const carName = "Volvo";
Try it Yourself »


Comentarios