猿问
下载APP

在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,反之亦然,它实际上是否有任何区别?


慕运维1137616
浏览 72回答 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.

慕勒3428872

Main point is that how to decide which one identifier should be used during development.In java-script here are three identifiers.1. var (Can re-declared & re-initialize)2. const (Can't re-declared & re-initialize, can update array values by using push)3. let (Can re-initialize but can't re-declare)'var':在我们谈论代码标准时的编码时,我们通常使用其他用户/开发人员易于理解的标识符名称。例如,如果我们正在使用许多函数,我们使用一些输入并处理它并返回一些结果,例如:**Example of variable use**function firstFunction(input1,input2){  var process = input1 + 2;   var result = process - input2;  return result;}function otherFunction(input1,input2){  var process = input1 + 8;   var result = process * input2;  return result;}在上面的例子中,两个函数产生不同的2结果,但使用相同的变量名。在这里我们可以看到'process'和'result'都被用作变量,它们应该是。 **Example of constant with variable**  const tax = 10;   const pi = 3.1415926535; function firstFunction(input1,input2){  var process = input1 + 2;   var result = process - input2;  result = (result * tax)/100;   return result;}function otherFunction(input1,input2){  var process = input1 + 8;   var result = process * input2 * pi;  return result;}在java脚本中使用'let'之前,我们必须在js文件的顶部添加'use strict' **Example of let with constant & variable**  const tax = 10;   const pi = 3.1415926535;   let trackExecution = '';function firstFunction(input1,input2){  trackExecution += 'On firstFunction';   var process = input1 + 2;   var result = process - input2;  result = (result * tax)/100;   return result;}function otherFunction(input1,input2){  trackExecution += 'On otherFunction'; # can add current time   var process = input1 + 8;   var result = process * input2 * pi;  return result;}  firstFunction();  otherFunction();  console.log(trackExecution);在上面的示例中,您可以跟踪在特定操作期间何时执行哪个功能以及执行哪个功能。
打开App,查看更多内容
随时随地看视频慕课网APP
我要回答