Why most of the time should I use
const instead of
const then we can't reassign value later. Then why not use
let instead of
let if the variable's value will change during the code
const if it won't and you / your team want to use
const in those situations in the project you're working on; it's a matter of style
If you do use
const, then it's surprising how often it turns out that the guidelines above mean you use
const because you end up not needing to change a variable's value (if you're following the usual rules of keeping your functions of reasonable size and such). (Well, it surprised me, anyway...)
const when the variable's¹ value is not meant to change accomplishes a few things:
It tells others reading your code that you don't intend the value to change.
It gives you a nice proactive error if you change the code so it writes to that variable. (A decent IDE can flag this up proactively, but if not, you'll get the error when running the code.) You can then make an informed, intentional decision: Should you change it to
let, or did you not mean to change that variable's value in the first place?
¹ Yes, it's funny to use the term "variable" to refer to something that by definition doesn't vary. :-) The specification's term is "binding," but I bet you won't hear people talking about "bindings" in everyday conversation anytime soon... So the aggregate term will probably remain "variable" except when we can specifically refer to something as a "constant."