简体   繁体   中英

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;

};

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM