问题描述
我最近遇到了关键字。据我所知,它用于创建,我已经过测试以确保它无法重新定义(在node.js中):
I've recently come across the const keyword in javascript. From what i can tell, it is used to create immutable variables, and I've tested to ensure that it cannot be redefined (in node.js):
const x = 'const';
const x = 'not-const';
// Will give an error: 'constant 'x' has already been defined'
我意识到它尚未在所有浏览器中标准化 - 但我只对node.js / v8的上下文感兴趣,并且我注意到某些似乎在var关键字可以用于相同的时候大力支持它效果。
I realise that it is not yet standardised across all browsers - but I'm only interested in the context of node.js/v8, and I've noticed that certain developers / projects seem to favour it heavily when the var keyword could be used to the same effect.
问题?
何时使用 const 代替 var ?
每次声明不会重新分配的变量时,是否应该使用它?
Should it be used every time a variable which is not going to be re-assigned is declared?
如果使用 var 代替 const ,反之亦然,它是否真的有所不同?
Does it actually make any difference if var is used in place of const or vice-versa?
推荐答案
您的问题有两个方面:使用 const 而不是
var
以及与此相关的人为因素。
There are two aspects to your questions: what are the technical aspects of using
const
instead of var
and what are the human-related aspects of doing so.
技术差异显着。在编译语言中,常量将在编译时被替换,并且它的使用将允许其他优化(如死代码删除)以进一步提高代码的运行时效率。最近(松散使用的术语)JavaScript引擎实际上编译JS代码以获得更好的性能,因此使用const关键字将告知它们上述优化是可能的并且应该完成。这会带来更好的性能。
The technical difference is significant. In compiled languages, a constant will be replaced at compile-time and its use will allow for other optimizations like dead code removal to further increase the runtime efficiency of the code. Recent (loosely used term) JavaScript engines actually compile JS code to get better performance, so using the const keyword would inform them that the optimizations described above are possible and should be done. This results in better performance.
与人类相关的方面是关键字的语义。变量是包含预期会更改的信息的数据结构。常量是包含永不改变的信息的数据结构。如果有错误的余地,应始终使用
var
。但是,并非所有在程序生命周期中永远不会更改的信息都需要使用 const
声明。如果在不同情况下信息应该更改,请使用 var
来表明,即使实际更改未出现在您的代码中。
The human-related aspect is about the semantics of the keyword. A variable is a data structure that contains information that is expected to change. A constant is a data structure that contains information that will never change. If there is room for error,
var
should always be used. However, not all information that never changes in the lifetime of a program needs to be declared with const
. If under different circumstances the information should change, use var
to indicate that, even if the actual change doesn't appear in your code.
这篇关于在JavaScript中的Const?何时使用它是必要的的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!