В javascript следует использовать const вместо var, когда это возможно?

Если вы создаете ссылку на объект и ссылка не изменится (даже если объект будет), лучше ли использовать const вместо var?

Например:

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;

};

Ответ 1

Вы можете использовать const, но вам нужно запустить node на --harmony

node app.js --harmony

Вам также нужно установить "use strict", иначе у вас будут проблемы с выполнением во время выполнения:

exports.getQuotation = function(value) {
    "use strict";

    const I_AM_CONSTANT = {};
    let quotation = {};
    ...

Кроме этого, да, если вы используете node на --harmony, семантически имеет смысл использовать const для констант. Для реальных переменных вы должны использовать let вместо var, поскольку let определяет только переменную в области (избегает проблем с подъемом)

Ответ 2

Если вы проверите MDN, для его справки вы можете найти его экспериментальную технологию, которая является частью предложения ES6. Поддержка браузера ограничена.

Ссылка для const из MDN

Это экспериментальная технология, часть Гармонии (ECMAScript 6) предложение. Поскольку эта спецификация технологии не стабилизировалась, проверьте таблицу совместимости для использования в разных браузерах. Также обратите внимание что синтаксис и поведение экспериментальной технологии подчиняются для изменения в будущей версии браузеров по мере изменения спецификации.

Итак, это отвечает, следует ли использовать всюду.:)

Также, если вы хотите создавать свойства в объектах, которые не должны меняться, тогда вы должны проверить Object.defineProperties() и использовать writable.

Ответ 3

const используется для константы переменной, т.е. после объявления, значение не должно меняться, тогда как var может быть изменено согласно завещанию.

Использование const и var осуществляется исключительно по вашему желанию. Для меня это выглядит следующим образом

  • Если я на 100% уверен, что значение переменной не изменится и оно не будет повторно объявлено, я определю его как const.
  • Во всех остальных случаях я буду использовать var.

Обратите внимание, что повторное объявление const немедленно выдаст ошибку.