首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在Javascript中使用'enum‘类型而不是字符串有什么意义吗?

在Javascript中使用'enum‘类型而不是字符串有什么意义吗?
EN

Stack Overflow用户
提问于 2016-03-31 00:50:51
回答 1查看 417关注 0票数 9

我有静态类型语言的背景,所以我从枚举中获得的主要好处是能够捕获编译时错误。

我正在用Javascript编写一个小程序,我发现自己想要像枚举这样的东西,可能是这样的:

代码语言:javascript
运行
AI代码解释
复制
var Fruit = {
   BANANA: "BANANA",
   APPLE: "APPLE",
   PEAR: "PEAR";
};

但我看不出这样做有什么好处。我也可以在需要这个'enum‘的地方使用字符串。

我应该在javascript中使用字符串而不是其他语言中的枚举类型吗?

EN

回答 1

Stack Overflow用户

发布于 2016-03-31 01:26:49

这是一个很好的方法来提取像魔术数字/字符串或类似的普通东西。想象一下,你到处都有BANANA,然后由于某种原因,你需要将BANANA更改为SOMETHING_ELSE,如果没有你正在使用的方法,你需要在每个地方都进行更改。

代码语言:javascript
运行
AI代码解释
复制
var foo = {
  bar: "baz"
}

因此,使用foo.bar而不是到处使用硬编码的字符串"baz",可以节省您的时间,并在将"baz"更改为其他内容时避免可能的错误。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36322344

复制
相关文章
什么在代码中要求我们使用LocalDateTime而不是Date?
在项目开发过程中经常遇到时间处理,但是你真的用对了吗,理解阿里巴巴开发手册中禁用static修饰SimpleDateFormat吗?
用户1516716
2019/11/24
1.2K0
在JavaScript中仿真Java的enum
背景 最近开始做的一个项目使用facebook的ReactJS前端框架。发现经常使用react的keyMirror工具来定义一些枚举常量: var keyMirror = require('keyMirror'); var AppMode = keyMirror({ LOG_IN: null, SIGN_UP: null }); module.exports = AppMode; 其他JS代码对该枚举的引用大概如下代码: var AppMode = require('../const/app
老码农
2018/06/27
2.4K0
java中finally有什么意义呢,在现实中?举例
马克-to-win: finally有什么意义呢,在现实中?比如你开了一个流处理文件,可能没开成功,或开成功了,但后面的操作失败了,但不管你怎么样,你必须在一个地儿把它关闭,那就是finally块儿。
马克java社区
2021/04/08
4960
java中finally有什么意义呢,在现实中?举例
为什么 build 方法放在 State 中而不是在 StatefulWidget 中
为什么 build 方法放在 State 中而不是在 StatefulWidget 中呢?其中前2点是源代码的注释中给出的原因,最后一点是我的一点个人理解。
老孟Flutter
2021/01/28
9830
为什么我在 Linux 上使用 exa 而不是 ls?
我们生活在一个繁忙的世界里,当我们需要查找文件和数据时,使用 ls 命令可以节省时间和精力。但如果不经过大量调整,默认的 ls 输出并不十分舒心。当有一个 exa 替代方案时,为什么要花时间眯着眼睛看黑白文字呢?
用户1880875
2021/09/06
2.1K0
【说站】mysql中enum类型是什么
2、enum忽略了大小写。也支持通过下标(从1开始,下标越界时报错)插入数据。特殊值0表示空值。
很酷的站长
2022/11/23
1.8K0
【说站】mysql中enum类型是什么
你知道 JavaScript 中的错误对象有哪些类型吗?
每当 JavaScript 中发生任何运行时错误时,都会引发Error对象。 在许多情况下,我们还可以扩展这些标准Error对象,以创建我们自己的自定义Error对象。
前端小智@大迁世界
2020/05/12
7.1K1
你知道 JavaScript 中的错误对象有哪些类型吗?
在应用开发中,我为什么选择 Flutter 而不是 React Native ?
作为一位开发人员,我想在本文中与大家聊聊跨平台开发领域的两大核心选项——Flutter 与 React Native 框架,并介绍我自己为什么更偏爱 Flutter。
逆锋起笔
2021/01/28
3.5K0
枚举类型enum用法(enum类型)
例如,季节类,它只有4个实例(春、夏、秋、冬),并且这4个实例不会改变。可以用枚举类来表示:
全栈程序员站长
2022/08/01
3.2K0
Java中为什么要使用单继承而不是多继承?
(1)如果在一个子类继承的多个父类中拥有相同名字的实例变量,子类在引用该变量时将产生歧义,无法判断应该使用哪个父类的变量。
Vincent-yuan
2021/10/13
1.8K0
mysql中的enum是什么类型_数据库枚举类型是什么
2.你可能会报这个错——Caused by: java.sql.SQLException: Data truncated for column ‘Color’ at row 1 ;
全栈程序员站长
2022/10/04
4.4K0
mysql中的enum是什么类型_数据库枚举类型是什么
在Android中使用枚举注解而不是枚举
很多开发规范都是不建议在Android中使用枚举的,在Android系统中使用枚举的开销是使用常量的2倍。一般地,在一个文件中定义常量
阳仔
2019/07/31
1.4K0
在Android中使用枚举注解而不是枚举
JDBC为什么要使用PreparedStatement而不是Statement
前言 这篇博客不是我写的,是由刘志军大大翻译的,真心觉得很棒,而且是必学要掌握的东西,所以就转载过来了,我个人的第一篇转载文章。 开始 PreparedStatement是用来执行SQL查询语句的API之一,Java提供了 Statement、PreparedStatement 和 CallableStatement三种方式来执行查询语句,其中 Statement 用于通用查询, PreparedStatement 用于执行参数化查询,而 CallableStatement则是用于存储过程。同时Prepar
roobtyan
2018/06/04
1.5K0
为什么建议使用你 LocalDateTime ,而不是 Date?
多线程并发如何保证线程安全 - 避免线程之间共享一个SimpleDateFormat对象,每个线程使用时都创建一次SimpleDateFormat对象 => 创建和销毁对象的开销大 - 对使用format和parse方法的地方进行加锁 => 线程阻塞性能差 - 使用ThreadLocal保证每个线程最多只创建一次SimpleDateFormat对象 => 较好的方法
芋道源码
2019/10/23
1.6K0
面试题46:为什么Redis使用SDS而不是C字符串?
【说明】最后一位遵循C字符串的空字符('\0')结尾的规则,目的是,可以直接使用C字符串的函数。其中len计数不包含‘\0’。
爪哇缪斯
2023/05/09
2910
面试题46:为什么Redis使用SDS而不是C字符串?
JDBC为什么要使用PreparedStatement而不是Statement
PreparedStatement是java.sql包下面的一个接口,用来执行SQL语句查询,通过调用connection.preparedStatement(sql)方法可以获得PreparedStatment对象。数据库系统会对sql语句进行预编译处理(如果JDBC驱动支持的话),预处理语句将被预先编译好,这条预编译的sql查询语句能在将来的查询中重用,这样一来,它比Statement对象生成的查询速度更快。下面是一个例子:
哲洛不闹
2018/09/19
1.1K0
JDBC为什么要使用PreparedStatement而不是Statement
为什么建议使用你 LocalDateTime ,而不是 Date?
来源:juejin.im/post/5d7787625188252388753eae
JAVA葵花宝典
2019/10/29
1.1K0
为什么建议你使用LocalDateTime而不是Date?
calendar是共享变量,并且这个共享变量没有做线程安全控制。当多个线程同时使用相同的SimpleDateFormat对象【如用static修饰的SimpleDateFormat】调用format方法时,多个线程会同时调用calendar.setTime方法,可能一个线程刚设置好time值另外的一个线程马上把设置的time值给修改了导致返回的格式化时间可能是错误的。在多并发情况下使用SimpleDateFormat需格外注意SimpleDateFormat除了format是线程不安全以外,parse方法也是线程不安全的。parse方法实际调用alb.establish(calendar).getTime()方法来解析,alb.establish(calendar)方法里主要完成了
Bug开发工程师
2020/03/12
2.1K0
为什么建议使用你 LocalDateTime ,而不是 Date?
来源:juejin.im/post/5d7787625188252388753eae
用户1516716
2019/10/24
1.1K0
为什么建议使用你LocalDateTime,而不是Date?
在项目开发过程中经常遇到时间处理,但是你真的用对了吗,理解阿里巴巴开发手册中禁用static修饰SimpleDateFormat吗?
良月柒
2019/10/28
1.5K0
为什么建议使用你LocalDateTime,而不是Date?

相似问题

在TypeScript中使用ENUM有什么意义?

20

在代码(不是URL)中"javascript:“有什么意义?

43

C++ --使用< T>而不是<typename T>有什么意义吗?

11

使用ostringstream而不是只使用常规字符串有什么意义?

12

使用SubSink而不是订阅数组有什么意义

239
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档