Const

Appartient au bloc. Ne peut être ré-assigné. On peut tout de même append des éléments à un objet ou un array.

Let

Peut-être ré-assigné

So this works fine

const x = {};

x.foo = 'bar';

console.log(x); // {foo : 'bar'}

and this

const y = [];

y.push('foo');

console.log(y); // ['foo'];

but neither of these

const x = {};
x = {foo: 'bar'}; // error - re-assigning

const y = ['foo'];
const y = ['bar']; // error - re-declaring

const foo = 'bar'; 
foo = 'bar2';       // error - can not re-assign
var foo = 'bar3';   // error - already declared
function foo() {};  // error - already declared

Source : https://stackoverflow.com/questions/23436437/why-can-i-change-value-of-a-constant-in-javascript#23436563

Dans cet article, phrase importante :

constant and read-only are two different things. Your variable (x or y in examples above) is constant, but the array it’s pointing to isn’t read-only

https://putaindecode.io/fr/articles/js/es2015/const-let-var/