Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Why are they worried about working by reference on numbers?

  // bad
  var a = 1;
  var b = 2;

  // good
  const a = 1;
  const b = 2;


In 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.


The 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.


'const' is misleading, it doesn't set your variables as immutable. Fine for expression, but not for actual practicality.


It 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.


Assuming 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.


> 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.


You're right.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: