4 ms·
However, it's worth noting that using const doesn't make variables immutable. It only protects them of being reassigned: const val = 'a'; val = 'b'; // TypeErr
by rpastuszak 10y ago
However, it's worth noting that using const doesn't make variables immutable. It only protects them of being reassigned:
const val = 'a';
val = 'b'; // TypeError
const obj = { val: 'a' };
obj.val = 'b'; // This line will still work.
obj = { val: 'b' }; // TypeError
- dcherman 10y agoYep. In those cases, I still prefer let personally even though I know the variable itself will not be re-assigned, kind of as an indicator that I expect the referenced object to be mutated.
- candu 10y agoComing from a background that includes some experience with C / C++, `const` here works as I expect it to. I'd prefer `const` even for the object reference case: I get errors on reassignment this way, and presumably it makes additional optimizations possible. To each their own, I suppose :) There's also `Object.defineProperty()`, `Object.freeze()` for more control over mutability.