JavaScript 中的可枚举2025 年 3 月 2 日 | 6 分钟阅读 在 JavaScript 中,通过枚举来表示一组固定的命名值。它们使程序员能够创建一组命名常量,这些常量可以在代码库中使用,以提高错误预防、可读性和可维护性。 枚举(通常称为 enums)在 JavaScript 中用于表示一组固定的命名值。由于 JavaScript 中没有内置枚举,通常使用对象或冻结数组来实现它们。 例如,星期几(如{"SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, and SATURDAY"})、颜色(如{"BLUE, RED, YELLOW, PINK, GREEN"})等,季节(如{"SUMMER, AUTUMN or FALL, SPRING, WINTER"}),以及方向(如{"EAST, WEST, NORTH, SOUTH, NORTH EAST, SOUTH EAST, and SOUTH WEST"})都可以包含在此类枚举中。 JavaScript 支持枚举吗?JavaScript 缺少一个内置的枚举数据类型,尽管枚举数据类型通常在许多计算机语言中都有使用,包括 C++、Java 等。可以通过类和对象来实现 JavaScript 中的枚举功能。 语法一个例子是使用带有整数值的枚举类型来编写我们的 JavaScript 代码。 代码 输出 ![]() 这种方法可以用于小型代码库,尽管在某些情况下可能会导致歧义。开发者可能编写如下示例中的指令,例如将第一个字母小写,但字符串匹配失败并返回 false。 代码 输出 ![]() 由于它们只是基本类型的两个值,开发者也可能设计不相关的枚举,这些枚举可能被条件运算符错误地匹配。让我们通过一个例子来分析这个问题。 代码 输出 ![]() 在此示例中,创建了两个不同的枚举类型,但在 if 块的值检查期间,它们会混淆。我们想要的是其他东西。此外,使用整数或数字在逻辑上是错误的。例如,方向需要更有效地表示它们的种类,因为它们既不是字符串,也不是整数,也不是数字。 带有 Symbol 类型的枚举JavaScript 中有一个称为 Symbol() 的概念。Symbol 不会相互冲突。因此,使用 Symbol 指定值将更合适且不易出错。以下是语法。 语法 让我们来看一个使用 Symbol 的类似案例,并确定它们是否会发生冲突。 代码 输出 ![]() 创建不可变枚举类型到目前为止,已经发现了一些枚举的实现。然而,存在一些问题。在最终的策略中,我们仍然可以通过简单地为枚举类型赋予新值来更新其值。可以通过将对象传递给 Object.freeze() 函数 来使其不可变,从而限制枚举的更新。让我们用这个作为例子。 语法代码 输出 ![]() 在 JavaScript 中,通过 for...in 循环或 Object.keys() 方法在迭代时可以查看的属性称为可枚举属性。通过属性初始化或简单赋值创建的所有属性默认都是可枚举的。 示例 1:代码定义了一个具有 registration、name、age 和 marks 属性的学生对象。对象的键在 for...in 循环中被迭代,其中每个键都被赋给一个变量 key。console.log(key) 语句将打印每个键的学生注册信息、姓名、年龄和分数。 代码 输出 ![]() 由于属性初始化程序初始化了所有属性,因此默认情况下所有属性的可枚举性都设置为 true。 示例 2:Object.defineProperty() 方法用于显式修改属性的内部可枚举属性。此外,我们使用 propertyIsEnumerable() 函数来确定一个属性是否可枚举。如果属性可枚举,则返回 true;如果不可枚举,则返回 false。 代码 输出 ![]() 总结为了使我们的程序更易于阅读,我们可以使用通过枚举或 enum 数据类型创建的有序常量集合。与许多其他语言不同,JavaScript 不支持枚举类型。可以在 JavaScript 程序中以多种方式设计枚举。可以通过带有整数或字符串值的对象创建基本枚举;然而,这种方法在许多情况下不合适,因为同一类型的两个枚举可能会发生冲突。使用 Symbol 来防止冲突是一种潜在的解决方案。使用类作为枚举类型是我们使枚举不可变的最佳方式,这样我们就可以防止不必要的修改。 |
什么是 JavaScript 中的框架?在 JavaScript 中,框架是预先编写的代码,JavaScript 库可以为开发人员提供预先构建的解决方案,以应对 Web 开发中的常见任务和挑战。大多数 JavaScript 框架通常包含函数、模块和 API,它们有助于简化...
阅读 6 分钟
数组是一个对象,用于使用单个变量名存储不同类型的数据集合。有时,我们需要对数组求和。在本文中,我们将学习如何对数组求和...
5 分钟阅读
目前,由于其丰富的功能集、大量的扩展和用户友好的工具,开发人员在 Visual Studio Code (VS Code) 中进行开发和调试代码。Visual Studio Code 可以被确切地描述为 JavaScript 的高级版本 - 一个...
阅读9分钟
JavaScript 中的调试是什么?在 JavaScript 中,调试用于查找任何软件源代码中的错误或漏洞。简单来说,调试是一个过程,我们检查 JavaScript 代码,查找错误并修复它们。开发人员可能会犯一些错误...
阅读 4 分钟
JavaScript 已经发生了显著的变化,因为它最初是由 Netscape 创建的,作为一种客户端脚本语言。如今,它构成了现代 Web 开发的框架,支持增强用户体验的交互式元素。然而,由于 JavaScript...
阅读 17 分钟
简介:测试是编程开发中不可或缺的一部分,可确保代码的可靠性和功能性。在 JavaScript 领域,随着应用程序日益复杂,强大的测试实践至关重要。无论您是经验丰富的开发人员,还是刚刚开始您的旅程,理解...
阅读9分钟
什么是 Langchain.JS?在 JavaScript 中,langchain 是一个用于开发由大型语言模型 (LLM) 驱动的应用程序的框架。简而言之,LangChainJS 是一个多功能 JavaScript 框架,可帮助开发人员和研究人员创建、实验和分析语言模型和代理。它还提供了一些功能……
7 分钟阅读
在 JavaScript 中,onkeypress 事件是一个事件处理程序属性,它指定当在键盘上按下并释放键时要运行的函数。当键被物理按下然后释放时,此事件被触发。onkeypress 事件是一个键盘...
阅读 4 分钟
JavaScript 中的逻辑与 (&&) 运算符 逻辑运算符是 JavaScript 的一个关键部分,JavaScript 是一种强大且适应性强的计算机语言,用于 Web 开发。逻辑与 (&&) 运算符是 JavaScript 中用于执行逻辑运算的基本逻辑运算符之一。如果所有的...
阅读 6 分钟
在本文中,我们将了解 JavaScript 中的 FizzBuzz 程序。让我们先了解一下“FizzBuzz”是什么。FizzBuzz FizzBuzz 通常是一个供儿童玩的游戏,通过这个游戏他们学习如何整除数字。在这个游戏中,参与者围成一圈,然后从...
阅读 4 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India