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

后端 未结 3 1104
北荒
北荒 2021-02-20 05:31

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:

相关标签:
3条回答
  • 2021-02-20 06:00

    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)

    0 讨论(0)
  • 2021-02-20 06:02

    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.

    0 讨论(0)
  • 2021-02-20 06:11

    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.

    0 讨论(0)
提交回复
热议问题