在javascript中我应该尽可能使用const而不是var?

如果创build一个对象的引用,并且引用不会改变(即使对象将会改变),使用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; }; 

你可以使用const,但是你必须在--harmony上运行节点

 node app.js --harmony 

您还必须设置"use strict" ,否则您将遇到运行时执行问题:

 exports.getQuotation = function(value) { "use strict"; const I_AM_CONSTANT = {}; let quotation = {}; ... 

除此之外,是的,如果你正在运行节点上的--harmony ,从语义上来说,使用const来处理常量更有意义。 对于实际的variables,你应该使用let而不是var,因为只let在范围中定义variables(避免提升问题)

如果你检查MDN,作为参考,你可以发现它是一个实验技术,是ES6提案的一部分。 它的浏览器支持是有限的。

从MDN引用const

这是一项实验技术,是和谐(ECMAScript 6)提案的一部分。 由于该技术的规格不稳定,请查看各种浏览器的兼容性表格以供使用。 还要注意,随着规范的改变,实验技术的语法和行为在未来版本的浏览器中可能会发生变化。

所以这个答案是否应该到处使用。 🙂

另外如果你想在不应该允许改变的对象中创build属性,那么你应该检查Object.defineProperties()和使用writable属性。

const用于variables常量,即一旦声明,它的值不应该改变,而var可以根据意志改变。

constvar使用完全取决于你的意愿。 对我来说如下

  • 如果我100%确定variables的值不会改变,并且不会重新声明,那么我将它定义为一个const。
  • 在其他所有情况下,我将使用var。

注意,重新声明const会立即抛出一个错误。