如果创建对象的引用,并且引用不会改变(即使对象会改变),那么使用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;
};
答案 0 :(得分:4)
您可以使用const,但必须在--harmony
node app.js --harmony
您还必须设置"use strict"
,否则您将遇到运行时执行问题:
exports.getQuotation = function(value) {
"use strict";
const I_AM_CONSTANT = {};
let quotation = {};
...
除此之外,如果您在--harmony
上运行节点,则是,从语义上讲,将const
用于常量更有意义。对于实际变量,您应该使用let
而不是var,因为let
仅定义范围中的变量(避免提升问题)
答案 1 :(得分:3)
如果您查看MDN,作为参考,您可以发现它是ES6提案的一部分实验技术。它的浏览器支持有限。
来自MDN的const参考
这是一项实验技术,是和谐的一部分(ECMAScript 6) 提案。因为这项技术的规格尚未稳定, 检查兼容性表以了解各种浏览器的用法。另请注意 实验技术的语法和行为是主题 随着规范的变化,在未来版本的浏览器中进行更改。
所以这回答了你是否应该随处使用。 :)
此外,如果您想在不允许更改的对象中创建属性,则应检查Object.defineProperties()
并使用writable
属性。
答案 2 :(得分:1)
const用于变量常量,即一旦声明,它的值不应该改变,而var
可以按照意愿改变。
使用const
和var
完全取决于您的意愿。对我而言如下
请注意,重新声明const
会立即抛出错误。