Why const by default
Most bugs come from state changing when you don't expect it. const forbids reassignment, which makes that class of bug impossible. A const array or object can still be mutated (its contents change), but the binding itself is frozen:
const nums = [1, 2, 3];
nums.push(4); // allowed: mutating contents
nums = [5]; // TypeError: Assignment to constant variable.
Reach for let only when a variable genuinely needs a new binding, like a loop counter.