If creating a reference to an object, and the reference is not going to change (even though the object will), is it better to use const instead of var?
For example:
You can use const, but you have to run node on --harmony
node app.js --harmony
You also have to set "use strict"
, otherwise you'll have run-time execution issues:
exports.getQuotation = function(value) {
"use strict";
const I_AM_CONSTANT = {};
let quotation = {};
...
Other than that, yes if you are running node on --harmony
, semantically it makes more sense to use const
for constants. For actual variables you should use let
instead of var, as let
only defines the variable in the scope (avoids hoisting issues)
If you check MDN, for its reference you can find that its an experimental technology which is part of ES6 proposal. Its browser support is limited.
Reference for const from MDN
This is an experimental technology, part of the Harmony (ECMAScript 6) proposal. Because this technology's specification has not stabilized, check the compatibility table for usage in various browsers. Also note that the syntax and behavior of an experimental technology is subject to change in future version of browsers as the spec changes.
So this answers whether you should use everywhere. :)
Also if you want to create properties in objects which should not be allowed to change, then you should check Object.defineProperties() and the use of writable
attribute.
const is used for a variable constant, i.e. once declared, it's value is not supposed to change, whereas var
can be changed as per the will.
Use of const
and var
is solely on your will. For me it goes as follows
Mind it, re-declaring const
will immediately throw an error.