Are you struggling to figure out the best way to keep your code organized? Do you find yourself looking for (and forgetting) variables every time you run into a tricky problem? If so, JavaScript enums can be your answer.

Enums, short for enumeration, are like librarians of code — they make sure that all the pieces fit together correctly and ensure all the variables are in their proper places, saving you time and making it easier to manage complex applications.
In this post, we'll take an in-depth look at what enums do and how they're used by JavaScript developers everywhere. By understanding how easy they are to write and implement, you can use enums to simplify your operations and save resources.
What is a JavaScript Enum?
What is a JavaScript enum?
In JavaScript, an Enum is essentially an object with a set of key-value pairs, where each key is a constant name and each value is an assigned value.
In other words, JavaScript enums are a type of data structure that stores related values in one place. Unlike other structures, the enum assigns each value with its own unique name.
This makes it easier to refer to a specific value without having to remember the corresponding number or string. For example, instead of saying "1 is sad and 2 is happy," you can just say "SAD is sad and HAPPY is happy."
Enums are also helpful when dealing with a group of related values that might change over time. For instance, if your application needs to support different languages, you can create an enum containing language codes like EN (English), ES (Spanish), and so on.
JavaScript Enum Syntax:
The syntax for defining an Enum in JavaScript is as follow:
Here, EnumName is the name of the Enum, CONSTANT1 and CONSTANT2 are the names of the constants, and value1 and value2 are the assigned values. Note that the constants are written in all uppercase letters, which is a convention used to distinguish them from regular variables.
To access the values of the constants in an Enum, you can simply use the dot notation, like this:
This will return the value assigned to CONSTANT1 in the EnumName object.
Enums in JavaScript are immutable, which means that once they are defined, their values cannot be changed. This makes them useful for representing fixed sets of values that remain constant throughout the execution of your code. Additionally, Enums are easy to use and understand, and can greatly improve the readability of your code by making it clear what each constant represents.
JavaScript Enums Examples
Now let’s look at two coding examples to get a better idea of how enums are used in JavaScript.
First, imagine that you’re building an application that requires the user to select a certain option. Instead of using numbers or strings to represent each option, you can create an Enum with meaningful, constant names.
For example:
Now, when the user selects one of the options, you can refer to it using the constant name instead of its value. For instance, if they select option B, you would write OPTION_ENUM.OPTION_B instead of 'optionB'. This makes your code more readable and easier to maintain.
The second example is a bit more complex. Imagine you’re building an e-commerce application that supports different shipping methods, such as standard, express, and overnight delivery. Instead of using strings or numbers to represent each method, you can create an Enum with constants representing the various options.
For example:
Now, when the user selects their desired delivery option, you can refer to it using the constant name instead of its value. For example, if they select overnight delivery, you would write SHIPPING_METHODS_ENUM.OVERNIGHT instead of 'overnight'.
JavaScript Enums Advanced Techniques
While the basics of JavaScript Enum are straightforward, there are several advanced techniques that can enhance the usefulness and versatility of Enums. Here are some examples:
JavaScript Enum vs. Object
One common question is, why use Enum when you could simply use an Object with key-value pairs to achieve the same functionality? While it is true that an Object could serve the same purpose as an Enum, using an Enum has several advantages. Enum constants can only have values that are primitive data types, which can improve type safety in your code. Additionally, Enum constants are enumerable, which means that you can iterate over them easily.
JavaScript Enum With Switch Statements
Another useful technique is using Enums with switch statements, which allows you to switch between different cases based on the value of a particular constant in the Enum. This can make your code more modular and easier to read. For example:
JavaScript Enum With Reverse Mappings
Another advanced technique is using Enums with reverse mappings, which allows you to easily retrieve the key of a particular constant based on its value. This can be useful in situations where you need to retrieve the name of a constant dynamically based on user input or other factors. Here's an example of reverse mapping:
This creates a reverse mapping between the values and names of the constants in the Enum, which can be accessed using the enumFromValue function.
JavaScript Enum Iteration
Finally, Enums can also be easily iterated using the for...in loop, which allows you to perform actions on each constant in the Enum. For example:
This will iterate over each constant in the Enum and log its name to the console.
By using these advanced techniques and exploring the full potential of JavaScript Enum, you can greatly enhance the functionality and flexibility of your code.
Working With Enums Going Forward
JavaScript Enum is a powerful feature that allows you to define a set of named constants, making your code more efficient, readable, and scalable. Remember that Enums are immutable and easy to use and that there are several advanced techniques for working with Enums. By incorporating Enums into your coding process, you can simplify your code and make it more intuitive and maintainable.
So the next time you're working on a JavaScript project, don't forget to consider using Enums to represent sets of named constants.