{"id":16675,"date":"2022-05-06T12:46:00","date_gmt":"2022-05-06T12:46:00","guid":{"rendered":"https:\/\/soloweb.com.br\/blog\/?p=16675"},"modified":"2022-05-06T14:05:41","modified_gmt":"2022-05-06T14:05:41","slug":"principais-recursos-do-javascript-es12-que-voce-deve-saber","status":"publish","type":"post","link":"https:\/\/soloweb.com.br\/blog\/2022\/05\/06\/principais-recursos-do-javascript-es12-que-voce-deve-saber\/","title":{"rendered":"Principais recursos do JavaScript ES12 que voc\u00ea deve saber"},"content":{"rendered":"\n<p>Em 2015, o revolucion\u00e1rio ES6 foi introduzido com uma variedade de recursos que s\u00e3o comumente usados \u200b\u200bno desenvolvimento web moderno. Desde ent\u00e3o, o ECMAScript evoluiu significativamente at\u00e9 o ES12, oficialmente conhecido como ECMAScript 2021. <\/p>\n\n\n\n<p>O ES12 chegou em junho de 2021 com novos recursos, melhorias e algumas altera\u00e7\u00f5es de sintaxe. Todo desenvolvedor JavaScript ansioso para ter o melhor desempenho deve aprender os recursos mais recentes do ES12. Neste post, veremos os seis principais recursos com exemplos.<\/p>\n\n\n\n<p><strong>Precisando hospedar seu projeto em uma empresa que oferece suporte avan\u00e7ado e um valor justo? Veja as op\u00e7\u00f5as da SOLOWEB acesse<\/strong> <a href=\"https:\/\/soloweb.com.br\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/soloweb.com.br<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1. Promise.any()<\/h2>\n\n\n\n<p>Promise.any() pega um iter\u00e1vel de objetos Promise e resolve se alguma dessas promessas for resolvida. Isso \u00e9 \u00fatil quando precisamos apenas de uma promessa para cumprir, independentemente do que aconte\u00e7a com os outros. Promise.all() era um m\u00e9todo semelhante que j\u00e1 existia no ES, mas era resolvido apenas se todas as promessas fossem resolvidas. Da mesma forma, Promise.race() foi usado para retornar a primeira promessa para concluir se foi resolvida ou rejeitada.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const err = new Promise((resolve, reject) =&gt; {\n  reject(new Error('Erro'));\n});\nconst p1 = new Promise((resolve, reject) =&gt; {\n  setTimeout(() =&gt; {\n   resolve('Primeira Promise');\n  }, 200);\n});\nconst p2 = new Promise((resolve, reject) =&gt; {\n  setTimeout(() =&gt; {\n   resolve('Segunda Promise');\n  }, 500);\n});\nPromise.any(\\\\\\&#91;err, p1, p2\\\\\\]).then((res) =&gt; {\n  console.log(res);\n})\n\n\/\/ output: Primeira Promise<\/code><\/pre>\n\n\n\n<p>A nova classe <strong>AggregateError<\/strong> nos ajuda a detectar exce\u00e7\u00f5es do m\u00e9todo Promise.any(). Por exemplo, se todas as promessas passadas para Promise.any() forem rejeitadas, ele lan\u00e7ar\u00e1 um objeto AggregateError.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const e1 = new Promise((resolve, reject) =&gt; {\n  reject(new Error('Erro 1'));\n});\nconst e2 = new Promise((resolve, reject) =&gt; {\n  reject(new Error('Erro 2'));\n});\nPromise.any(\\\\\\&#91;e1, e2\\\\\\])\n.then((res) =&gt; {\n  console.log(res);\n})\n.catch((err) =&gt; {\n  console.log(err);\n});\n\/\/ output: \"AggregateError: All promises were rejected\"<\/code><\/pre>\n\n\n\n<p>O uso de Promise.any() no desenvolvimento \u00e9 bem direto. Por exemplo, podemos enviar v\u00e1rias chamadas de API id\u00eanticas para um servidor ou banco de dados e retornar os dados, independentemente do que ocorrer primeiro.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">2. WeakRef<\/h2>\n\n\n\n<p>Como o nome sugere, WeakRef \u00e9 uma refer\u00eancia fraca para outro objeto. Um objeto fracamente referenciado n\u00e3o ser\u00e1 mantido na mem\u00f3ria enquanto n\u00e3o for fortemente referenciado. <\/p>\n\n\n\n<p>JavaScript usa seu algoritmo de coleta de lixo para eliminar objetos na mem\u00f3ria que n\u00e3o s\u00e3o mais referenciados por outros objetos. Portanto, quando criamos um objeto WeakRef, ele pode ser coletado como lixo a qualquer momento.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const student = {\n    name: 'Jo\u00e3o da Silva',\n    age: 20,\n    address: {\n      number: 365,\n      street: 'Ruas das Flores'\n    }\n  }\nconst ref = new WeakRef(student);\nref.deref().age;\n\n\/\/output: 20<\/code><\/pre>\n\n\n\n<p>Podemos usar o m\u00e9todo deref() para acessar a refer\u00eancia fraca se ela ainda estiver dispon\u00edvel na mem\u00f3ria. <\/p>\n\n\n\n<p>Embora o WeakRef seja \u00fatil para economizar mem\u00f3ria, os autores do WeakRef aconselham evit\u00e1-lo sempre que poss\u00edvel, devido ao comportamento complicado dos coletores de lixo em diferentes mecanismos JavaScript.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">3. Private class&nbsp;methods<\/h2>\n\n\n\n<p>Desde a introdu\u00e7\u00e3o de classes para JavaScript no ES6, m\u00e9todos e propriedades s\u00e3o p\u00fablicos por padr\u00e3o. Embora os desenvolvedores tenham usado o prefixo de sublinhado ( _ ) ao declarar m\u00e9todos e propriedades privadas, era apenas uma conven\u00e7\u00e3o. Isso n\u00e3o impediu ningu\u00e9m de acessar propriedades privadas de fora da classe. <\/p>\n\n\n\n<p>Mas com o ES12, o JavaScript permitiu a cria\u00e7\u00e3o de m\u00e9todos e propriedades privadas de forma nativa. Para criar um, temos que prefixar o identificador com um hash ( # ).<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class Auth {\n  #getToken() {\n   return \"12345678\";\n  }\n  isAuth() {\n   return this.#getToken();\n  }\n}\n\nconst auth = new Auth();\n\nauth.getToken(); \/\/output: auth.getToken is not a function\n\nauth.isAuth(); \/\/output: 12345678<\/code><\/pre>\n\n\n\n<p>Semelhante aos m\u00e9todos e propriedades privados, podemos definir acessadores privados (getters e setters) usando a mesma sintaxe.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class Auth {\n   get #getToken() {\n    return localStorage.getItem('token');\n   }\n   set #setToken(token) {\n    localStorage.setItem('token', token);\n   }\n   set login(token) {\n    this.#setToken = token;\n   }\n   get isAuth() {\n    return this.#getToken;\n   }\n}\n\nlet token = '12345678';\n\nconst auth = new Auth();\n\nauth.login = token;\n\nauth.isAuth; \/\/output: 12345678\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">4. Atribui\u00e7\u00e3o l\u00f3gica OR (Logical assignment operators)<\/h2>\n\n\n\n<p>JavaScript j\u00e1 suporta operadores de atribui\u00e7\u00e3o aritm\u00e9tica e bit a bit. A partir do ES12, ele ampliou o suporte a operadores de atribui\u00e7\u00e3o l\u00f3gica. <\/p>\n\n\n\n<p>Existem tr\u00eas novos operadores de atribui\u00e7\u00e3o l\u00f3gica:<\/p>\n\n\n\n<p>Atribui\u00e7\u00e3o de nulidade l\u00f3gica ( <strong>??= <\/strong>)  Ou Logical Nullish Assignment<\/p>\n\n\n\n<p>Atribui\u00e7\u00e3o E L\u00f3gica ( <strong>&amp;&amp;=<\/strong> ) Ou Logical AND Assignment&nbsp;<\/p>\n\n\n\n<p>Atribui\u00e7\u00e3o l\u00f3gica OR <strong>( <strong>||=<\/strong> )<\/strong> Ou Logical OR Assignment <\/p>\n\n\n\n<p>Embora a sintaxe seja semelhante a um operador de atribui\u00e7\u00e3o aritm\u00e9tica (+=), os operadores de atribui\u00e7\u00e3o l\u00f3gica nem sempre realizar\u00e3o a atribui\u00e7\u00e3o. Em vez disso, a atribui\u00e7\u00e3o ocorrer\u00e1 somente se a condi\u00e7\u00e3o definida pelo operador l\u00f3gico for atendida.<\/p>\n\n\n\n<p><strong>4.1 Atribui\u00e7\u00e3o de nulidade l\u00f3gica<\/strong><\/p>\n\n\n\n<p>O operador de atribui\u00e7\u00e3o l\u00f3gico nulo (??=) atribuir\u00e1 o valor do operando direito ao operando esquerdo somente se o operando esquerdo for nulo ou indefinido (nulo). <\/p>\n\n\n\n<p>A primeira vista, o operador ??=\u00a0pode parecer um pouco confuso porque a forma expandida desse operador \u00e9 equivalente a x\u00a0?? (x = y).<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const person = { name: 'Jo\u00e3o' };\n\nperson.name ??= 'Usuario 1';\n\nconsole.log(person.name);\n\/\/ output: Jo\u00e3o\n\nperson.age ??= 18;\n\nconsole.log(person.age);\n\/\/ output: 18<\/code><\/pre>\n\n\n\n<p>Se usarmos uma vers\u00e3o mais antiga do ES, o c\u00f3digo acima ficar\u00e1 assim:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const person = { name: 'Jo\u00e3o' };\nif(person.name === undefined || person.name === null) {\n    person.name = 'Usuario 1';\n}\n\nconsole.log(person.name);\n\nif(person.age === undefined || person.age === null) {\n    person.age = 18;\n}\n\nconsole.log(person.age);<\/code><\/pre>\n\n\n\n<p><strong>4.2 Atribui\u00e7\u00e3o E L\u00f3gica<\/strong><\/p>\n\n\n\n<p>O operador de atribui\u00e7\u00e3o l\u00f3gico AND (&amp;&amp;=) realizar\u00e1 a atribui\u00e7\u00e3o se o operando esquerdo for verdadeiro. Como acabamos de abordar a atribui\u00e7\u00e3o nula, o uso do operador de atribui\u00e7\u00e3o l\u00f3gico AND \u00e9 bastante autoexplicativo.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const product = { stocks: 10 };\nproduct.stocks &amp;&amp;= 20;\nconsole.log(product.stocks);\n\n\/\/ output: 20\n\nproduct.exp &amp;&amp;= '25\/12\/2021';\nconsole.log(product.exp);\n\n\/\/ output: undefined<\/code><\/pre>\n\n\n\n<p><strong>4.3 Atribui\u00e7\u00e3o l\u00f3gica OR<\/strong><\/p>\n\n\n\n<p>O operador de atribui\u00e7\u00e3o l\u00f3gica OR (||=) \u00e9 semelhante \u00e0 atribui\u00e7\u00e3o nula, mas o operando esquerdo deve ser falso para que a atribui\u00e7\u00e3o ocorra. Um valor \u00e9 considerado falso se for nulo, indefinido, falso, 0 ou NaN.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const product = {\n  stocks: 0,\n  exp: '31\/12\/2021'\n};\n\nproduct.stocks ||= 10;\n\nconsole.log(product.stocks);\n\/\/ output: 10\n\nproduct.exp ||= '31\/01\/2022';\n\nconsole.log(product.exp);\n\/\/ output: 12\/31\/2021<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">5. String.replaceAll()<\/h2>\n\n\n\n<p>A finalidade do m\u00e9todo replaceAll() \u00e9 substituir todas as substrings dentro de uma string. Nas vers\u00f5es anteriores do ES, se quis\u00e9ssemos fazer isso, t\u00ednhamos que usar o m\u00e9todo replace(). <\/p>\n\n\n\n<p>No m\u00e9todo replace(), apenas a primeira ocorr\u00eancia seria substitu\u00edda se voc\u00ea usasse uma string como o primeiro argumento. Portanto, definir\u00edamos o primeiro argumento como uma express\u00e3o regular para substituir todas as ocorr\u00eancias.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>let str = 'hotdog dog'.replace(new RegExp('dog','g'), 'cat');\n\nconsole.log(str) \/\/output: hotcat cat<\/code><\/pre>\n\n\n\n<p>Com o ES12, podemos usar o m\u00e9todo replaceAll() imediatamente sem usar express\u00f5es regulares. Este m\u00e9todo \u00e9 super simples e seguro.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>let str = 'hotdog dog'.replaceAll('dog', 'cat');\n\nconsole.log(str) \/\/output: hotcat cat<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">6. Separadores num\u00e9ricos (Numeric separators<\/h2>\n\n\n\n<p>Este \u00e9 um recurso simples e \u00fatil que j\u00e1 estava dispon\u00edvel nos navegadores gra\u00e7as ao motor V8, mas agora vem integrado ao ES12. Separadores num\u00e9ricos s\u00e3o sublinhados (_) que nos ajudam a separar n\u00fameros grandes.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>let billion = 1_000_000_000;\n\nconsole.log(billion); \/\/output: 1000000000<\/code><\/pre>\n\n\n\n<p>O navegador ignorar\u00e1 os sublinhados. Separadores num\u00e9ricos facilitam a vida dos desenvolvedores ao trabalhar com grandes n\u00fameros.<\/p>\n\n\n\n<p><em><strong>Observa\u00e7\u00e3o<\/strong>: os n\u00fameros n\u00e3o podem come\u00e7ar ou terminar com um separador num\u00e9rico e voc\u00ea n\u00e3o pode usar dois ou mais sublinhados juntos.<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclus\u00e3o<\/h2>\n\n\n\n<p>O ECMAScript continua evoluindo com a introdu\u00e7\u00e3o de novos recursos interessantes a cada ano. <\/p>\n\n\n\n<p>Neste post, exploramos os seis principais recursos do ES12 que voc\u00ea deve aprender como desenvolvedor JavaScript. Espero que voc\u00ea aproveite esses recursos para seus projetos de desenvolvimento. <\/p>\n\n\n\n<p><strong>E lembrando se est\u00e1 precisando hospedar seu projeto em uma empresa que oferece suporte avan\u00e7ado e um valor justo? Veja as op\u00e7\u00f5as da SOLOWEB acesse<\/strong> <a rel=\"noreferrer noopener\" href=\"https:\/\/soloweb.com.br\" target=\"_blank\">https:\/\/soloweb.com.br<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Em 2015, o revolucion\u00e1rio ES6 foi introduzido com uma variedade de recursos que s\u00e3o comumente usados \u200b\u200bno desenvolvimento web moderno.<\/p>\n","protected":false},"author":4,"featured_media":16686,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"colormag_page_container_layout":"default_layout","colormag_page_sidebar_layout":"default_layout","_editorskit_title_hidden":false,"_editorskit_reading_time":0,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","footnotes":""},"categories":[106,240,241],"tags":[242,224],"class_list":["post-16675","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-desenvolvimento","category-javascript","category-javascript-2","tag-es12","tag-javascript"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Principais recursos do JavaScript ES12 que voc\u00ea deve saber - SOLOWEB Tecnologia<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/soloweb.com.br\/blog\/2022\/05\/06\/principais-recursos-do-javascript-es12-que-voce-deve-saber\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Principais recursos do JavaScript ES12 que voc\u00ea deve saber - SOLOWEB Tecnologia\" \/>\n<meta property=\"og:description\" content=\"Em 2015, o revolucion\u00e1rio ES6 foi introduzido com uma variedade de recursos que s\u00e3o comumente usados \u200b\u200bno desenvolvimento web moderno.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/soloweb.com.br\/blog\/2022\/05\/06\/principais-recursos-do-javascript-es12-que-voce-deve-saber\/\" \/>\n<meta property=\"og:site_name\" content=\"SOLOWEB Tecnologia\" \/>\n<meta property=\"article:published_time\" content=\"2022-05-06T12:46:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-05-06T14:05:41+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/soloweb.com.br\/blog\/wp-content\/uploads\/2022\/05\/novaWhatsApp-Image-2022-05-06-at-10.57.46-1.jpeg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"1005\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Carlos Rolim\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Carlos Rolim\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/soloweb.com.br\/blog\/2022\/05\/06\/principais-recursos-do-javascript-es12-que-voce-deve-saber\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/soloweb.com.br\/blog\/2022\/05\/06\/principais-recursos-do-javascript-es12-que-voce-deve-saber\/\"},\"author\":{\"name\":\"Carlos Rolim\",\"@id\":\"https:\/\/soloweb.com.br\/blog\/#\/schema\/person\/b10ff5bc260b411c2d82b19fad8ae3f1\"},\"headline\":\"Principais recursos do JavaScript ES12 que voc\u00ea deve saber\",\"datePublished\":\"2022-05-06T12:46:00+00:00\",\"dateModified\":\"2022-05-06T14:05:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/soloweb.com.br\/blog\/2022\/05\/06\/principais-recursos-do-javascript-es12-que-voce-deve-saber\/\"},\"wordCount\":1028,\"publisher\":{\"@id\":\"https:\/\/soloweb.com.br\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/soloweb.com.br\/blog\/2022\/05\/06\/principais-recursos-do-javascript-es12-que-voce-deve-saber\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/soloweb.com.br\/blog\/wp-content\/uploads\/2022\/05\/novaWhatsApp-Image-2022-05-06-at-10.57.46-1.jpeg\",\"keywords\":[\"ES12\",\"javascript\"],\"articleSection\":[\"Desenvolvimento\",\"JavaScript\",\"Javascript\"],\"inLanguage\":\"pt-BR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/soloweb.com.br\/blog\/2022\/05\/06\/principais-recursos-do-javascript-es12-que-voce-deve-saber\/\",\"url\":\"https:\/\/soloweb.com.br\/blog\/2022\/05\/06\/principais-recursos-do-javascript-es12-que-voce-deve-saber\/\",\"name\":\"Principais recursos do JavaScript ES12 que voc\u00ea deve saber - SOLOWEB Tecnologia\",\"isPartOf\":{\"@id\":\"https:\/\/soloweb.com.br\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/soloweb.com.br\/blog\/2022\/05\/06\/principais-recursos-do-javascript-es12-que-voce-deve-saber\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/soloweb.com.br\/blog\/2022\/05\/06\/principais-recursos-do-javascript-es12-que-voce-deve-saber\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/soloweb.com.br\/blog\/wp-content\/uploads\/2022\/05\/novaWhatsApp-Image-2022-05-06-at-10.57.46-1.jpeg\",\"datePublished\":\"2022-05-06T12:46:00+00:00\",\"dateModified\":\"2022-05-06T14:05:41+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/soloweb.com.br\/blog\/2022\/05\/06\/principais-recursos-do-javascript-es12-que-voce-deve-saber\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/soloweb.com.br\/blog\/2022\/05\/06\/principais-recursos-do-javascript-es12-que-voce-deve-saber\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/soloweb.com.br\/blog\/2022\/05\/06\/principais-recursos-do-javascript-es12-que-voce-deve-saber\/#primaryimage\",\"url\":\"https:\/\/soloweb.com.br\/blog\/wp-content\/uploads\/2022\/05\/novaWhatsApp-Image-2022-05-06-at-10.57.46-1.jpeg\",\"contentUrl\":\"https:\/\/soloweb.com.br\/blog\/wp-content\/uploads\/2022\/05\/novaWhatsApp-Image-2022-05-06-at-10.57.46-1.jpeg\",\"width\":1200,\"height\":1005},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/soloweb.com.br\/blog\/2022\/05\/06\/principais-recursos-do-javascript-es12-que-voce-deve-saber\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"https:\/\/soloweb.com.br\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Principais recursos do JavaScript ES12 que voc\u00ea deve saber\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/soloweb.com.br\/blog\/#website\",\"url\":\"https:\/\/soloweb.com.br\/blog\/\",\"name\":\"SOLOWEB Tecnologia\",\"description\":\"SOLOWEB Tecnologia\",\"publisher\":{\"@id\":\"https:\/\/soloweb.com.br\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/soloweb.com.br\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/soloweb.com.br\/blog\/#organization\",\"name\":\"SOLOWEB Tecnologia\",\"url\":\"https:\/\/soloweb.com.br\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/soloweb.com.br\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/soloweb.com.br\/blog\/wp-content\/uploads\/2022\/04\/cropped-solo.png\",\"contentUrl\":\"https:\/\/soloweb.com.br\/blog\/wp-content\/uploads\/2022\/04\/cropped-solo.png\",\"width\":341,\"height\":94,\"caption\":\"SOLOWEB Tecnologia\"},\"image\":{\"@id\":\"https:\/\/soloweb.com.br\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/soloweb.com.br\/blog\/#\/schema\/person\/b10ff5bc260b411c2d82b19fad8ae3f1\",\"name\":\"Carlos Rolim\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/soloweb.com.br\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/soloweb.com.br\/blog\/wp-content\/uploads\/2023\/01\/avatar_user_4_1674993909-96x96.png\",\"contentUrl\":\"https:\/\/soloweb.com.br\/blog\/wp-content\/uploads\/2023\/01\/avatar_user_4_1674993909-96x96.png\",\"caption\":\"Carlos Rolim\"},\"sameAs\":[\"http:\/\/carlosrolim.com\"],\"url\":\"https:\/\/soloweb.com.br\/blog\/author\/carlos\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Principais recursos do JavaScript ES12 que voc\u00ea deve saber - SOLOWEB Tecnologia","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:\/\/soloweb.com.br\/blog\/2022\/05\/06\/principais-recursos-do-javascript-es12-que-voce-deve-saber\/","og_locale":"pt_BR","og_type":"article","og_title":"Principais recursos do JavaScript ES12 que voc\u00ea deve saber - SOLOWEB Tecnologia","og_description":"Em 2015, o revolucion\u00e1rio ES6 foi introduzido com uma variedade de recursos que s\u00e3o comumente usados \u200b\u200bno desenvolvimento web moderno.","og_url":"https:\/\/soloweb.com.br\/blog\/2022\/05\/06\/principais-recursos-do-javascript-es12-que-voce-deve-saber\/","og_site_name":"SOLOWEB Tecnologia","article_published_time":"2022-05-06T12:46:00+00:00","article_modified_time":"2022-05-06T14:05:41+00:00","og_image":[{"width":1200,"height":1005,"url":"https:\/\/soloweb.com.br\/blog\/wp-content\/uploads\/2022\/05\/novaWhatsApp-Image-2022-05-06-at-10.57.46-1.jpeg","type":"image\/jpeg"}],"author":"Carlos Rolim","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Carlos Rolim","Est. tempo de leitura":"7 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/soloweb.com.br\/blog\/2022\/05\/06\/principais-recursos-do-javascript-es12-que-voce-deve-saber\/#article","isPartOf":{"@id":"https:\/\/soloweb.com.br\/blog\/2022\/05\/06\/principais-recursos-do-javascript-es12-que-voce-deve-saber\/"},"author":{"name":"Carlos Rolim","@id":"https:\/\/soloweb.com.br\/blog\/#\/schema\/person\/b10ff5bc260b411c2d82b19fad8ae3f1"},"headline":"Principais recursos do JavaScript ES12 que voc\u00ea deve saber","datePublished":"2022-05-06T12:46:00+00:00","dateModified":"2022-05-06T14:05:41+00:00","mainEntityOfPage":{"@id":"https:\/\/soloweb.com.br\/blog\/2022\/05\/06\/principais-recursos-do-javascript-es12-que-voce-deve-saber\/"},"wordCount":1028,"publisher":{"@id":"https:\/\/soloweb.com.br\/blog\/#organization"},"image":{"@id":"https:\/\/soloweb.com.br\/blog\/2022\/05\/06\/principais-recursos-do-javascript-es12-que-voce-deve-saber\/#primaryimage"},"thumbnailUrl":"https:\/\/soloweb.com.br\/blog\/wp-content\/uploads\/2022\/05\/novaWhatsApp-Image-2022-05-06-at-10.57.46-1.jpeg","keywords":["ES12","javascript"],"articleSection":["Desenvolvimento","JavaScript","Javascript"],"inLanguage":"pt-BR"},{"@type":"WebPage","@id":"https:\/\/soloweb.com.br\/blog\/2022\/05\/06\/principais-recursos-do-javascript-es12-que-voce-deve-saber\/","url":"https:\/\/soloweb.com.br\/blog\/2022\/05\/06\/principais-recursos-do-javascript-es12-que-voce-deve-saber\/","name":"Principais recursos do JavaScript ES12 que voc\u00ea deve saber - SOLOWEB Tecnologia","isPartOf":{"@id":"https:\/\/soloweb.com.br\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/soloweb.com.br\/blog\/2022\/05\/06\/principais-recursos-do-javascript-es12-que-voce-deve-saber\/#primaryimage"},"image":{"@id":"https:\/\/soloweb.com.br\/blog\/2022\/05\/06\/principais-recursos-do-javascript-es12-que-voce-deve-saber\/#primaryimage"},"thumbnailUrl":"https:\/\/soloweb.com.br\/blog\/wp-content\/uploads\/2022\/05\/novaWhatsApp-Image-2022-05-06-at-10.57.46-1.jpeg","datePublished":"2022-05-06T12:46:00+00:00","dateModified":"2022-05-06T14:05:41+00:00","breadcrumb":{"@id":"https:\/\/soloweb.com.br\/blog\/2022\/05\/06\/principais-recursos-do-javascript-es12-que-voce-deve-saber\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/soloweb.com.br\/blog\/2022\/05\/06\/principais-recursos-do-javascript-es12-que-voce-deve-saber\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/soloweb.com.br\/blog\/2022\/05\/06\/principais-recursos-do-javascript-es12-que-voce-deve-saber\/#primaryimage","url":"https:\/\/soloweb.com.br\/blog\/wp-content\/uploads\/2022\/05\/novaWhatsApp-Image-2022-05-06-at-10.57.46-1.jpeg","contentUrl":"https:\/\/soloweb.com.br\/blog\/wp-content\/uploads\/2022\/05\/novaWhatsApp-Image-2022-05-06-at-10.57.46-1.jpeg","width":1200,"height":1005},{"@type":"BreadcrumbList","@id":"https:\/\/soloweb.com.br\/blog\/2022\/05\/06\/principais-recursos-do-javascript-es12-que-voce-deve-saber\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/soloweb.com.br\/blog\/"},{"@type":"ListItem","position":2,"name":"Principais recursos do JavaScript ES12 que voc\u00ea deve saber"}]},{"@type":"WebSite","@id":"https:\/\/soloweb.com.br\/blog\/#website","url":"https:\/\/soloweb.com.br\/blog\/","name":"SOLOWEB Tecnologia","description":"SOLOWEB Tecnologia","publisher":{"@id":"https:\/\/soloweb.com.br\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/soloweb.com.br\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/soloweb.com.br\/blog\/#organization","name":"SOLOWEB Tecnologia","url":"https:\/\/soloweb.com.br\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/soloweb.com.br\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/soloweb.com.br\/blog\/wp-content\/uploads\/2022\/04\/cropped-solo.png","contentUrl":"https:\/\/soloweb.com.br\/blog\/wp-content\/uploads\/2022\/04\/cropped-solo.png","width":341,"height":94,"caption":"SOLOWEB Tecnologia"},"image":{"@id":"https:\/\/soloweb.com.br\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/soloweb.com.br\/blog\/#\/schema\/person\/b10ff5bc260b411c2d82b19fad8ae3f1","name":"Carlos Rolim","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/soloweb.com.br\/blog\/#\/schema\/person\/image\/","url":"https:\/\/soloweb.com.br\/blog\/wp-content\/uploads\/2023\/01\/avatar_user_4_1674993909-96x96.png","contentUrl":"https:\/\/soloweb.com.br\/blog\/wp-content\/uploads\/2023\/01\/avatar_user_4_1674993909-96x96.png","caption":"Carlos Rolim"},"sameAs":["http:\/\/carlosrolim.com"],"url":"https:\/\/soloweb.com.br\/blog\/author\/carlos\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/soloweb.com.br\/blog\/wp-json\/wp\/v2\/posts\/16675","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/soloweb.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/soloweb.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/soloweb.com.br\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/soloweb.com.br\/blog\/wp-json\/wp\/v2\/comments?post=16675"}],"version-history":[{"count":9,"href":"https:\/\/soloweb.com.br\/blog\/wp-json\/wp\/v2\/posts\/16675\/revisions"}],"predecessor-version":[{"id":16684,"href":"https:\/\/soloweb.com.br\/blog\/wp-json\/wp\/v2\/posts\/16675\/revisions\/16684"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/soloweb.com.br\/blog\/wp-json\/wp\/v2\/media\/16686"}],"wp:attachment":[{"href":"https:\/\/soloweb.com.br\/blog\/wp-json\/wp\/v2\/media?parent=16675"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/soloweb.com.br\/blog\/wp-json\/wp\/v2\/categories?post=16675"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/soloweb.com.br\/blog\/wp-json\/wp\/v2\/tags?post=16675"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}