猿问

在JavaScript中的Const?何时使用它是必要的

在JavaScript中的Const?何时使用它是必要的

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

const x = 'const';const x = 'not-const';// Will give an error: 'constant 'x' has already been defined'

我意识到它还没有在所有浏览器中标准化 - 但我只对node.js / v8的上下文感兴趣,并且我注意到当使用var关键字时,某些开发人员/项目似乎非常喜欢它达到同样的效果。

问题

何时使用const代替var

是否应该在每次声明不会重新分配的变量时使用它?

如果使用var代替const,反之亦然,它实际上是否有任何区别?


千巷猫影
浏览 1432回答 3
3回答

函数式编程

您的问题有两个方面:使用的技术方面是什么,const而不是var与人类相关的方面是什么。技术差异很大。在编译语言中,常量将在编译时被替换,并且它的使用将允许其他优化(如死代码删除)以进一步提高代码的运行时效率。最近(松散使用的术语)JavaScript引擎实际上编译JS代码以获得更好的性能,因此使用const关键字将告知它们上述优化是可能的并且应该完成。这导致更好的性能。与人类相关的方面是关于关键字的语义。变量是包含预期会更改的信息的数据结构。常量是包含永不改变的信息的数据结构。如果有错误的余地,var应始终使用。但是,并非所有在程序生命周期中永远不会更改的信息都需要声明const。如果在不同情况下信息应该更改,请使用var以指示即使实际更改未出现在您的代码中。

慕姐4208626

var:声明一个变量,值初始化可选。let:使用块作用域声明局部变量。const:声明一个只读的命名常量。例如:var a;a = 1;a = 2;//re-initialize possiblevar a = 3;//re-declareconsole.log(a);//3let b;b = 5;b = 6;//re-initiliaze possible// let b = 7; //re-declare not possibleconsole.log(b);// const c;// c = 9;   //initialization and declaration at same placeconst c = 9;// const c = 9;// re-declare and initialization is not possibleconsole.log(c);//9// NOTE: Constants can be declared with uppercase or lowercase, but a common// convention is to use all-uppercase letters.
随时随地看视频慕课网APP
我要回答