Desde ES6 tenemos una palabra reservada denominada const que nos permite guardar variables. Utilizamos const cuando sepamos o tengamos variables que no vayan a cambiar su valor durante el flujo de nuestra aplicación.
No se puede inicializar una declaración de constante sóla, es decir, no se puede tener una constante vacía, esto no ocurre con let y con var.
Como su nombre lo dice, es un valor constante, si tratamos de redeclarar una constante no nos lo permitirá. No puede ser variable la asignación de una constante. Utilizaremos constantes cuando necesitemos una variable que no cambie el valor durante el flujo de nuestro programa. Utilizaremos let en caso contrario.
Un objeto es una colección de atributos y valores (parecido a CSS), y un arreglo es una colección de datos. Una constante no funciona igual para valores primitivos que para valores compuestos. Los datos primitivos, accedemos directamente al valor, pero los objetos y los arreglos (valores compuestos), no se está accediendo al valor sino a una referencia de ese valor, y en ese sentido le podemos agregar más propiedades porque para Javascript la referencia del valor no ha cambiado, sigue siendo un objeto, sigue siendo el mismo objeto, lo mismo pasa con los arrays.
Si a lo largo del flujo de nuestra aplicación el valor de una variable va a cambiar (de texto a número, a objeto…) declara con let, de lo contrario se puede utilizar const.