Since 1.8.5 it’s possible to seal and freeze the object, so define the above as:
const DaysEnum = Object.freeze({"monday":1, "tuesday":2, "wednesday":3, ...})
or
const DaysEnum = {"monday":1, "tuesday":2, "wednesday":3, ...} Object.freeze(DaysEnum)
and voila! JS enums.
However, this doesn’t prevent you from assigning an undesired value to a variable, which is often the main goal of enums:
let day = DaysEnum.tuesday day = 298832342 // goes through without any errors
One way to ensure a stronger degree of type safety (with enums or otherwise) is to use a tool like TypeScript or Flow.
Quotes aren’t needed but I kept them for consistency.
Related Posts:
- How to make a word underline in Markdown
- Creating multiline strings in JavaScript
- Babel 6 regeneratorRuntime is not defined
- What is JSONP, and why was it created?
- React – uncaught TypeError: Cannot read property ‘setState’ of undefined
- Cannot read property ‘push’ of undefined when combining arrays
- SyntaxError: Unexpected token o in JSON at position 1
- Remove duplicate values from JS array
- Add swipe left/right to web page, but use default swipe up/down
- Check if checkbox is checked with jQuery
- What does “res.render” do, and what does the html file look like?
- How to pause javascript code execution for 2 seconds [duplicate]
- Getting Error “Form submission canceled because the form is not connected”
- How to Create simple drag and Drop in angularjs
- stop all instances of node.js server
- Working with $scope.$emit and $scope.$on
- Using Node.js require vs. ES6 import/export
- How can jQuery deferred be used?
- Uncaught TypeError : cannot read property ‘replace’ of undefined In Grid
- Disable/enable an input with jQuery?
- display variable image using cookies
- Find an element in DOM based on an attribute value
- character counter – backspace doesn’t reflect on characters remaining
- How does the double exclamation (!!) work in javascript?
- Add days to JavaScript Date
- illegal use of break statement; javascript
- Open URL in same window and in same tab
- Pass a JavaScript function as parameter
- Cannot read property ‘getContext’ of null, using canvas
- How to add multiple classes to a ReactJS Component?
- Make Axios send cookies in its requests automatically
- How to move an element after another element using JS or jquery?
- Converting any string into camel case
- Warning: findDOMNode is deprecated in StrictMode. findDOMNode was passed an instance of Transition which is inside StrictMode
- JSON.parse() not working
- Call python function from JS
- How to add onload event to a div element
- Access Control Origin Header error using Axios
- Structs in Javascript
- Refused to execute script, strict MIME type checking is enabled?
- Error: [ng:areq] from angular controller
- getElementsByAttribute() is not a function
- Javascript onload not working
- How to parse float with two decimal places in javascript?
- error Unable to get property ‘display’ of undefined or null reference
- Is there a php echo/print equivalent in javascript
- setInterval with loop time
- JavaScript by reference vs. by value
- What does the .subscribe() function do?
- navigator.geolocation.getCurrentPosition sometimes works sometimes doesn’t
- Expected ‘this’ to be used by class method
- Strip HTML from Text JavaScript
- How to disable auto-start of “Node.js: Server-side JavaScript” when using Adobe Dreamweaver?
- Regular expression to validate US phone numbers?
- How should I initialize jQuery?
- How to reload page every 5 seconds?
- How to set “style=display:none;” using jQuery’s attr method?
- Await is a reserved word error inside async function
- WordPress Bootstrap Handburger Menu Wont Open
- Show only images and videos in a wp.media window
- Instantiate TinyMCE via JS ( rather than PHP/wp_editor )
- Detecting WordPress Customizer Panel
- How to disable hoverIntent in WordPress 3.3 admin
- Customizer – instantiating settings and controls via javascript
- How do I enqueue(or delay loading of) tags in individual page posts?
- Animations are not being triggered on Scroll
- Preserve Javascript Through Customizer Preview Navigation
- Prevent escaping javascript in visual editor
- JavaScript in WordPress Customizer
- @wordpress/components Button variants not styled
- How to use div -ids in url to jump to specific post…Is trailing slash the culprit?
- Button insert link on front wp_editor not working
- How Can I Add OnClick Event To A Specific WordPress Menu Link
- What’s the most efficient way to include this javascript in only a single post?
- Adding a Javascript slideshow to the home page
- Screen Resolution Detect
- How to add customizer control via javascript ( wp.customizer.control.add )
- Is it possible to pass js variable to template file
- Automatically Add Defer or ASYNC to all JS files (no matter where they are located)
- How to generate the COOKIEHASH from JavaScript
- How to execute Javascript on a WordPress page?
- Gutenberg select excerpt, use generated excerpt or use more block excerpt
- find out reason of “Updating failed” in Post-editor
- Unable To Call Javascript With Enqueue
- Getting a variable inside foreach from PHP to JS after localization
- How to integrate a JS fiddle?
- Problem after upgrade to 3.6.1
- Hovercards and other hover over image functions don’t work anymore!
- Load JavaScript on specific page with @wordpress compiler
- java console error about touch navigation
- When adding google tag script in website, functionality not working
- How to improve WP-Rest atrocious response time?
- How should I identify the inline javascript that is the dependent of a wp_enqueue_script?
- How do I add a class to Customizer preview based on class of Customizer control? (Customizer Javascript API)
- How to verify that a field has a value before adding a term to a taxonomy
- Open image gallery on link click
- Where to include JS library in gutenberg blocks
- Theme path of WordPress inside javascript file
- Error – Uncaught TypeError: e.dispatchEvent is not a function
- Is it possible to add javascript to template parts