3 ms·
var a = 1; a = 2; window.someGlobal = 'foo';
by Touche 11y ago
var a = 1;
a = 2;
window.someGlobal = 'foo';
- ksikka 11y agohttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/const https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe...
- Touche 11y agoconst a = {b: "foo"}; a.b = "bar";
- dangoor 11y agoconst a = icepick.freeze({b: "foo"}); Granted, that's not as elegant as built-in support but that is literally what I'm doing at the moment when I want immutability.
- Touche 11y agoSo if you go to extraordinary lengths you can use JavaScript functionally but it's not very functional by default aside from the first-class functions. Personally I just embrace it's imperative/functional blended nature and go with it.
- deleted 11y ago[deleted]
- pyrophane 11y agoYea, const provides immutability with respect to assignment, but without immutable objects and collections, it isn't going to get you all the way.
- jsprogrammer 11y agoA functional language can allow mutations (see Haskell, LISP, etc.). All a functional language really needs is first class functions. JS has had that since the very beginning.
- omtanks 11y agoMicrosoft ruined C# by adding var. var is not your friend. Dynamic typing is not your friend and static languages pretending to be dynamic is akin to evil.
- dllthomas 11y agoImplicit typing is not dynamic typing, or even "pretending to be dynamic". It's also, I think, off topic - as the example seemed to be talking about mutability in JS, with no C# for miles.