В 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
немедленно выдаст ошибку.