&gt; I know that after reading a const line I don&#x27;t have to check if someone rebinds this name before each use site -- it&#x27;s impossible.<p>This turns out to be almost useless information for most of us, since the real problem is not re-assignment, but mutation of the value (in the case of non-primitives).<p>`const x = 2` feels great emotionally, but `const x = [2]` has the feeling of safety without any of the guarantee.<p>This is a classic case (quoted from Crockford regularly) of a utility that it sometimes useful and sometimes harmful (aka not useful), and there&#x27;s a better option (`let`), so the better option should generally be preferred.<p>I only use `const` (refactor from `let`) when a piece of code is reasonably complete and I&#x27;m pretty sure re-assignment will not ever be appropriate. Guessing at that before writing the code is a premature optimization.<p>And guessing wrongly and having to refactor back to `let` later is more risky.