当前位置: 首页 > 面试题库 >

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

闽康安
2023-03-14
问题内容

我最近遇到过 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反之亦然吗?

问题答案:

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

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

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



 类似资料:
  • 问题内容: 什么时候使用是个好主意? 我有时会在PHP的代码示例中看到这一点。这样可以处理DOS / Mac / Unix终端问题吗? 问题答案: 是的,表面上用来以跨平台兼容的方式查找换行符,因此它可以处理DOS / Unix问题。 请注意,PHP_EOL表示 _当前_系统的结束符。例如,在类似Unix的系统上执行时,它将找不到Windows终端行。

  • 问题内容: 奇怪的是: 似乎或多或少被定义为。通过这种方式很容易产生错误: 一些fname意外地以else块结尾。修复很简单,我们应该改用它,但是从表面上看,这似乎是一种不错的pythonic方式,并且比“正确”的方式更具可读性。 由于字符串是不可变的,所以为什么字符串错误是什么技术细节?什么时候进行身份检查更好,什么时候进行平等检查更好? 问题答案: 据我所知,检查对象身份是否相等。由于没有强制

  • 问题内容: 有一些关于如何为Swift 编写代码以及如何在Swift中编写代码的文章。但尚不清楚何时使用和而不是和。有人可以解释吗? 问题答案: 当您在类(或结构)中定义静态var / let时,该信息将在所有实例(或值)之间共享。 分享信息 如您在这里看到的,我创建了2个单独的实例,但是它们确实共享相同的静态变量。 辛格尔顿 通常使用静态常数来采用Singleton模式。在这种情况下,我们希望分

  • 问题内容: 我一直在研究代码中Unicode’N’常量的使用,例如: 在阅读了什么时候使用它的内容之后,我仍然不清楚应该在什么情况下使用它,以及在什么情况下不应该使用它。 当数据类型或参数需要unicode数据类型时(如上述示例),它是否像使用它一样简单,还是比它更复杂? 以下Microsoft网站提供了解释,但对于使用http://msdn.microsoft.com/zh- cn/librar

  • 问题内容: 我对JAX-WS进行了概述,并注意到了(和)的一些引用。 在什么情况下需要?(我认为JSR 109服务器?!) 问题答案: 是使用SUN的参考实现将Web服务作为标准存档部署在非Java EE5 Servlet容器上时所需的专有部署描述符。 Sun的RI 用作servlet上下文事件的侦听器和调度程序servlet。两者都必须在中声明。然后需要该文件为定义Web服务端点,以使其知道必须