Richard Sands
Richard Sands

Reputation: 608

In javascript should I use const instead of var whenever possible?

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:

const moment = require('moment')

exports.getQuotation = function(value) {

    const quotation = {};
    quotation.value = value;
    quotation.expiryDate = moment().add(7, 'days');

    // Do some other stuff with quotation perhaps

    return quotation;

};

Upvotes: 11

Views: 2613

Answers (3)

fmsf
fmsf

Reputation: 37137

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)

Upvotes: 4

Mithun Satheesh
Mithun Satheesh

Reputation: 27845

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.

Upvotes: 3

Bikas
Bikas

Reputation: 2759

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

  • If I'm 100% sure that the value of a variable is not going to change and it's not going to re-declared, I'll define it as a const.
  • In all other cases I'll use var.

Mind it, re-declaring const will immediately throw an error.

Upvotes: 1

Related Questions