一尘不染

JavaScript中的常量:什么时候使用它,有必要吗?

javascript

我最近遇到过 const JavaScript中的关键字。据我所知,它用于创建不可变变量,并且已经过测试以确保它不能被重新定义(在Node.js中):

const x = 'const';
const x = 'not-const';

// Will give an error: 'constant 'x' has already been defined'

我意识到它尚未在所有浏览器上实现标准化-但是我只对Node.jsV8感兴趣,而且我注意到,某些开发人员/项目似乎可以在将var关键字用于同样的效果。

所以我的问题是:

  • 什么时候可以const代替var
  • 是否应该在每次声明一个不会被重新分配的变量时使用它?
  • 如果var使用它代替, const反之亦然吗?

阅读 333

收藏
2020-05-01

共1个答案

一尘不染

您的问题有两个方面:const代替使用的技术方面是var什么,以及与人为因素相关的方面是什么。

技术差异很大。在编译语言中,常量将在编译时被替换,并且其使用将允许其他优化(如删除无效代码)以进一步提高代码的运行效率。最近的(松散使用的术语)JavaScript引擎实际上会编译JS代码以获得更好的性能,因此使用const关键字将告知它们上述优化是可能的,应该完成。这导致更好的性能。

与人有关的方面与关键字的语义有关。变量是一种数据结构,其中包含预期会更改的信息。常数是一种数据结构,其中包含永远不变的信息。如果有错误的余地,var应始终使用。但是,并非必须使用声明所有在程序生存期内从未改变的信息const。如果在不同的情况下信息应该更改,var即使实际的更改未出现在您的代码中,也请使用该信息进行指示。

2020-05-01