3 ms·
Why are they worried about working by reference on numbers? // bad var a = 1; var b = 2; // good const a = 1; const b = 2;
by orthoganol 11y ago
Why are they worried about working by reference on numbers?
// bad
var a = 1;
var b = 2;
// good
const a = 1;
const b = 2;
- shredprez 11y agoAssuming I'm not misunderstanding your question, it appears to cover that right above the snippet: "Why? This ensures that you can't reassign your references (mutation), which can lead to bugs and difficult to comprehend code." So it's not about working by reference but avoiding inadvertent reassignment and resulting unpredictability.
- orthoganol 11y ago> Assuming I'm not misunderstanding your question Numbers are not passed by reference. It's a lazy example, that has the potential to confuse. I would agree with the downvoters I'm being petty, but c'mon... it's the very first thing you read in your JavaScript guide & it's flawed.
- beaner 11y agoYou're right.
- epidemian 11y agoIn JS `const` just means that you can't reassign that variable, not that the value it references can't change: const a = {foo: 5}; a.foo = 42; // This is perfectly valid. a = 'nope'; // But this isn't. It raises a SyntaxError.
- orthoganol 11y agoThe purpose of the code wasn't to illustrate how to use const. It was to show how they want you to always use const with complex types.
- anselmoars 11y ago'const' is misleading, it doesn't set your variables as immutable. Fine for expression, but not for actual practicality.
- icebraining 11y agoIt does set your variables as immutable, just not your values. It makes sense if you see variables in these languages for what they are: references to values.