{"id":114725,"date":"2023-08-01T12:20:08","date_gmt":"2023-08-01T15:20:08","guid":{"rendered":"https:\/\/fluency.io\/br\/blog\/javascript-enum-implementando-enums-em-javascript\/"},"modified":"2023-08-01T12:20:08","modified_gmt":"2023-08-01T15:20:08","slug":"javascript-enum-implementando-enums-em-javascript","status":"publish","type":"post","link":"https:\/\/homolog.fluency.io\/br\/blog\/javascript-enum-implementando-enums-em-javascript\/","title":{"rendered":"JavaScript Enum: Implementando enums em JavaScript"},"content":{"rendered":"<p><body><\/p>\n<h1>O que \u00e9 um enum em JavaScript?<\/h1>\n<h2>Enumera\u00e7\u00e3o em JavaScript<\/h2>\n<p>Enumera\u00e7\u00e3o, ou simplesmente enum, \u00e9 um tipo de dados especial que permite definir um conjunto de valores nomeados. Em JavaScript, o enum n\u00e3o \u00e9 uma estrutura de linguagem nativa, mas existem maneiras de implementar enums no JavaScript para facilitar a organiza\u00e7\u00e3o e utiliza\u00e7\u00e3o de valores consistentes em seu c\u00f3digo.<\/p>\n<h2>Vantagens de usar enums em JavaScript<\/h2>\n<p>A utiliza\u00e7\u00e3o de enums em JavaScript traz diversos benef\u00edcios para o desenvolvimento de software. Seguem alguns motivos pelos quais voc\u00ea deve considerar implementar enums em seu c\u00f3digo JavaScript:<\/p>\n<h3>1. Legibilidade do c\u00f3digo<\/h3>\n<p>Ao utilizar enums, os valores s\u00e3o representados por nomes significativos, tornando o c\u00f3digo mais claro e f\u00e1cil de entender. Em vez de utilizar n\u00fameros ou strings diretamente, voc\u00ea pode atribuir significados sem\u00e2nticos aos valores da enumera\u00e7\u00e3o.<\/p>\n<h3>2. Manuten\u00e7\u00e3o simplificada<\/h3>\n<p>Ao utilizar enums, voc\u00ea centraliza a defini\u00e7\u00e3o dos valores permitidos em um \u00fanico local. Isso facilita a manuten\u00e7\u00e3o do c\u00f3digo, pois evita que voc\u00ea precise procurar por todas as ocorr\u00eancias de valores em diferentes partes do programa. Se for necess\u00e1rio adicionar ou remover um valor da enumera\u00e7\u00e3o, basta fazer a modifica\u00e7\u00e3o em um \u00fanico local.<\/p>\n<h3>3. Evitar erros de digita\u00e7\u00e3o<\/h3>\n<p>Ao utilizar enums, voc\u00ea evita erros de digita\u00e7\u00e3o ao atribuir valores. Em vez de digitar manualmente um valor, voc\u00ea pode usar o nome do valor da enumera\u00e7\u00e3o, o que reduz as chances de erros de sintaxe.<\/p>\n<h3>4. Valores consistentes<\/h3>\n<p>Enums garantem que apenas os valores permitidos sejam utilizados. Isso torna seu c\u00f3digo mais seguro, pois voc\u00ea n\u00e3o precisa se preocupar com a utiliza\u00e7\u00e3o de valores inv\u00e1lidos ou desconhecidos.<\/p>\n<h2>Como implementar enums em JavaScript?<\/h2>\n<p>Embora JavaScript n\u00e3o possua uma estrutura de enumera\u00e7\u00e3o nativa, \u00e9 poss\u00edvel implementar enums de maneira simples. Existem diferentes abordagens para isso, mas uma das maneiras mais comuns \u00e9 usar objetos literais ou classes para simular o comportamento de uma enumera\u00e7\u00e3o.<\/p>\n<h3>1. Usando objetos literais<\/h3>\n<p>Voc\u00ea pode definir um objeto literal contendo as chaves como os nomes dos valores e atribuir os valores correspondentes como seus respectivos valores. Por exemplo:<\/p>\n<pre><code>const DiasDaSemana = {\n  SEGUNDA: \"Segunda-feira\",\n  TERCA: \"Ter\u00e7a-feira\",\n  QUARTA: \"Quarta-feira\",\n  QUINTA: \"Quinta-feira\",\n  SEXTA: \"Sexta-feira\",\n  SABADO: \"S\u00e1bado\",\n  DOMINGO: \"Domingo\"\n};<\/code><\/pre>\n<h3>2. Usando uma classe<\/h3>\n<p>Voc\u00ea tamb\u00e9m pode implementar enums utilizando uma classe. Cada valor da enumera\u00e7\u00e3o \u00e9 definido como uma propriedade est\u00e1tica da classe. Por exemplo:<\/p>\n<pre><code>class DiasDaSemana {\n  static SEGUNDA = \"Segunda-feira\";\n  static TERCA = \"Ter\u00e7a-feira\";\n  static QUARTA = \"Quarta-feira\";\n  static QUINTA = \"Quinta-feira\";\n  static SEXTA = \"Sexta-feira\";\n  static SABADO = \"S\u00e1bado\";\n  static DOMINGO = \"Domingo\";\n}<\/code><\/pre>\n<p>Ambas as abordagens permitem que voc\u00ea utilize os valores da enumera\u00e7\u00e3o de maneira consistente em seu c\u00f3digo, garantindo a consist\u00eancia e a legibilidade do mesmo.<\/p>\n<h2>Exemplos de uso de enums em JavaScript<\/h2>\n<p>Agora que voc\u00ea entendeu o que \u00e9 uma enumera\u00e7\u00e3o, por que implement\u00e1-la em JavaScript e como fazer isso, vamos ver alguns exemplos pr\u00e1ticos de uso de enums em JavaScript:<\/p>\n<ol>\n<li>Controle de status<\/li>\n<li>Escolha de op\u00e7\u00f5es<\/li>\n<li>Mapeamento de dados<\/li>\n<\/ol>\n<h2>Conclus\u00e3o<\/h2>\n<p>Implementar enums em JavaScript pode trazer diversos benef\u00edcios para o desenvolvimento de software. Enums ajudam a melhorar a legibilidade, manuten\u00e7\u00e3o e seguran\u00e7a do c\u00f3digo. Com uma enumera\u00e7\u00e3o, voc\u00ea pode evitar erros de digita\u00e7\u00e3o, garantir a consist\u00eancia dos valores utilizados e facilitar a compreens\u00e3o do c\u00f3digo.<\/p>\n<p>Ainda que JavaScript n\u00e3o possua suporte nativo a enums, \u00e9 poss\u00edvel implement\u00e1-los utilizando objetos literais ou classes. Ambas as abordagens permitem que voc\u00ea defina conjuntos de valores consistentes e autodocumentados em seu c\u00f3digo.<\/p>\n<p>Portanto, considere utilizar enums em JavaScript sempre que precisar representar um conjunto fixo de valores. Isso ajudar\u00e1 a tornar seu c\u00f3digo mais robusto, leg\u00edvel e de f\u00e1cil manuten\u00e7\u00e3o.<\/p>\n<h2>A Awari \u00e9 a melhor plataforma para aprender sobre programa\u00e7\u00e3o no Brasil.<\/h2>\n<p>Aqui voc\u00ea encontra cursos com aulas ao vivo, mentorias individuais com os melhores profissionais do mercado e suporte de carreira personalizado para dar seu pr\u00f3ximo passo profissional e aprender habilidades como Data Science, Data Analytics, Machine Learning e mais.<\/p>\n<p>J\u00e1 pensou em aprender de maneira individualizada com profissionais que atuam em empresas como Nubank, Amazon e Google? Clique <a href=\"https:\/\/app.fluency.io\/br\/blog\/candidatura?&#038;utm_source=blog&#038;utm_campaign=paragrafofinal\" target=\"_blank\" rel=\"noopener\">aqui<\/a> para se inscrever na Awari e come\u00e7ar a construir agora mesmo o pr\u00f3ximo cap\u00edtulo da sua carreira em dados.<\/p>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Enums em JavaScript s\u00e3o uma forma especial de definir um conjunto de valores nomeados. Embora JavaScript n\u00e3o tenha suporte nativo a enums, \u00e9 poss\u00edvel implement\u00e1-los de maneira simples usando objetos literais ou classes. A utiliza\u00e7\u00e3o de enums traz benef\u00edcios como legibilidade do c\u00f3digo, manuten\u00e7\u00e3o simplificada e valores consistentes. Exemplos de uso de enums em JavaScript incluem controle de status, escolha de op\u00e7\u00f5es e mapeamento de dados. Ao implementar enums em JavaScript, voc\u00ea torna o c\u00f3digo mais robusto, leg\u00edvel e de f\u00e1cil manuten\u00e7\u00e3o.<\/p>\n","protected":false},"author":9,"featured_media":27846,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":[186],"meta":{"inline_featured_image":false,"footnotes":""},"categories":[229],"tags":[],"trilha":[],"class_list":["post-114725","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-skills","format-artigos"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>JavaScript Enum: Implementando enums em JavaScript - Fluency.io Brasil<\/title>\n<meta name=\"description\" content=\"Enums em JavaScript s\u00e3o uma forma especial de definir um conjunto de valores nomeados. Embora JavaScript n\u00e3o tenha suporte nativo a enums, \u00e9 poss\u00edvel imple...\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fluency.io\/br\/blog\/javascript-enum-implementando-enums-em-javascript\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"JavaScript Enum: Implementando enums em JavaScript - Fluency.io Brasil\" \/>\n<meta property=\"og:description\" content=\"Enums em JavaScript s\u00e3o uma forma especial de definir um conjunto de valores nomeados. Embora JavaScript n\u00e3o tenha suporte nativo a enums, \u00e9 poss\u00edvel imple...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fluency.io\/br\/blog\/javascript-enum-implementando-enums-em-javascript\/\" \/>\n<meta property=\"og:site_name\" content=\"Fluency.io Brasil\" \/>\n<meta property=\"article:published_time\" content=\"2023-08-01T15:20:08+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"kaue\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fluency.io\/br\/blog\/javascript-enum-implementando-enums-em-javascript\/\",\"url\":\"https:\/\/fluency.io\/br\/blog\/javascript-enum-implementando-enums-em-javascript\/\",\"name\":\"JavaScript Enum: Implementando enums em JavaScript - Fluency.io Brasil\",\"isPartOf\":{\"@id\":\"https:\/\/fluency.io\/br\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/fluency.io\/br\/blog\/javascript-enum-implementando-enums-em-javascript\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/fluency.io\/br\/blog\/javascript-enum-implementando-enums-em-javascript\/#primaryimage\"},\"thumbnailUrl\":\"\",\"datePublished\":\"2023-08-01T15:20:08+00:00\",\"author\":{\"@id\":\"https:\/\/fluency.io\/br\/#\/schema\/person\/7b3b2b50ba17b7f2ad0cce0a40bfa00a\"},\"description\":\"Enums em JavaScript s\u00e3o uma forma especial de definir um conjunto de valores nomeados. Embora JavaScript n\u00e3o tenha suporte nativo a enums, \u00e9 poss\u00edvel imple...\",\"breadcrumb\":{\"@id\":\"https:\/\/fluency.io\/br\/blog\/javascript-enum-implementando-enums-em-javascript\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fluency.io\/br\/blog\/javascript-enum-implementando-enums-em-javascript\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/fluency.io\/br\/blog\/javascript-enum-implementando-enums-em-javascript\/#primaryimage\",\"url\":\"\",\"contentUrl\":\"\",\"width\":1027,\"height\":420},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fluency.io\/br\/blog\/javascript-enum-implementando-enums-em-javascript\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"https:\/\/homolog.fluency.io\/br\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"JavaScript Enum: Implementando enums em JavaScript\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fluency.io\/br\/#website\",\"url\":\"https:\/\/fluency.io\/br\/\",\"name\":\"Fluency.io Brasil\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fluency.io\/br\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/fluency.io\/br\/#\/schema\/person\/7b3b2b50ba17b7f2ad0cce0a40bfa00a\",\"name\":\"kaue\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/fluency.io\/br\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/bdd3958fa53019cfd8f789c0a49a730e7ba40a1d20cb42c9ced7646285842479?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/bdd3958fa53019cfd8f789c0a49a730e7ba40a1d20cb42c9ced7646285842479?s=96&d=mm&r=g\",\"caption\":\"kaue\"},\"url\":\"https:\/\/homolog.fluency.io\/br\/author\/kaue\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"JavaScript Enum: Implementando enums em JavaScript - Fluency.io Brasil","description":"Enums em JavaScript s\u00e3o uma forma especial de definir um conjunto de valores nomeados. Embora JavaScript n\u00e3o tenha suporte nativo a enums, \u00e9 poss\u00edvel imple...","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fluency.io\/br\/blog\/javascript-enum-implementando-enums-em-javascript\/","og_locale":"pt_BR","og_type":"article","og_title":"JavaScript Enum: Implementando enums em JavaScript - Fluency.io Brasil","og_description":"Enums em JavaScript s\u00e3o uma forma especial de definir um conjunto de valores nomeados. Embora JavaScript n\u00e3o tenha suporte nativo a enums, \u00e9 poss\u00edvel imple...","og_url":"https:\/\/fluency.io\/br\/blog\/javascript-enum-implementando-enums-em-javascript\/","og_site_name":"Fluency.io Brasil","article_published_time":"2023-08-01T15:20:08+00:00","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"kaue","Est. tempo de leitura":"4 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/fluency.io\/br\/blog\/javascript-enum-implementando-enums-em-javascript\/","url":"https:\/\/fluency.io\/br\/blog\/javascript-enum-implementando-enums-em-javascript\/","name":"JavaScript Enum: Implementando enums em JavaScript - Fluency.io Brasil","isPartOf":{"@id":"https:\/\/fluency.io\/br\/#website"},"primaryImageOfPage":{"@id":"https:\/\/fluency.io\/br\/blog\/javascript-enum-implementando-enums-em-javascript\/#primaryimage"},"image":{"@id":"https:\/\/fluency.io\/br\/blog\/javascript-enum-implementando-enums-em-javascript\/#primaryimage"},"thumbnailUrl":"","datePublished":"2023-08-01T15:20:08+00:00","author":{"@id":"https:\/\/fluency.io\/br\/#\/schema\/person\/7b3b2b50ba17b7f2ad0cce0a40bfa00a"},"description":"Enums em JavaScript s\u00e3o uma forma especial de definir um conjunto de valores nomeados. Embora JavaScript n\u00e3o tenha suporte nativo a enums, \u00e9 poss\u00edvel imple...","breadcrumb":{"@id":"https:\/\/fluency.io\/br\/blog\/javascript-enum-implementando-enums-em-javascript\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fluency.io\/br\/blog\/javascript-enum-implementando-enums-em-javascript\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/fluency.io\/br\/blog\/javascript-enum-implementando-enums-em-javascript\/#primaryimage","url":"","contentUrl":"","width":1027,"height":420},{"@type":"BreadcrumbList","@id":"https:\/\/fluency.io\/br\/blog\/javascript-enum-implementando-enums-em-javascript\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/homolog.fluency.io\/br\/"},{"@type":"ListItem","position":2,"name":"JavaScript Enum: Implementando enums em JavaScript"}]},{"@type":"WebSite","@id":"https:\/\/fluency.io\/br\/#website","url":"https:\/\/fluency.io\/br\/","name":"Fluency.io Brasil","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fluency.io\/br\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Person","@id":"https:\/\/fluency.io\/br\/#\/schema\/person\/7b3b2b50ba17b7f2ad0cce0a40bfa00a","name":"kaue","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/fluency.io\/br\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/bdd3958fa53019cfd8f789c0a49a730e7ba40a1d20cb42c9ced7646285842479?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/bdd3958fa53019cfd8f789c0a49a730e7ba40a1d20cb42c9ced7646285842479?s=96&d=mm&r=g","caption":"kaue"},"url":"https:\/\/homolog.fluency.io\/br\/author\/kaue\/"}]}},"_links":{"self":[{"href":"https:\/\/homolog.fluency.io\/br\/wp-json\/wp\/v2\/posts\/114725","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/homolog.fluency.io\/br\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/homolog.fluency.io\/br\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/homolog.fluency.io\/br\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/homolog.fluency.io\/br\/wp-json\/wp\/v2\/comments?post=114725"}],"version-history":[{"count":0,"href":"https:\/\/homolog.fluency.io\/br\/wp-json\/wp\/v2\/posts\/114725\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/homolog.fluency.io\/br\/wp-json\/"}],"wp:attachment":[{"href":"https:\/\/homolog.fluency.io\/br\/wp-json\/wp\/v2\/media?parent=114725"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/homolog.fluency.io\/br\/wp-json\/wp\/v2\/categories?post=114725"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/homolog.fluency.io\/br\/wp-json\/wp\/v2\/tags?post=114725"},{"taxonomy":"format","embeddable":true,"href":"https:\/\/homolog.fluency.io\/br\/wp-json\/wp\/v2\/format?post=114725"},{"taxonomy":"trilha","embeddable":true,"href":"https:\/\/homolog.fluency.io\/br\/wp-json\/wp\/v2\/trilha?post=114725"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}