DEV Community

Cover image for As novas funcionalidades do Javascript em 2020 (ES2020)
Ary Barros
Ary Barros

Posted on

4 1

As novas funcionalidades do Javascript em 2020 (ES2020)

Javascript é uma sensação, grande parte em virtude da explosão do desenvolvimento web nos dias de hoje. Muitos estão inseridos nela e outros, uma hora ou outra terão que aprende-la para integrar determinadas funcionalidades a seus projetos. Segundo o StackOverflow Survey 2020 o Javascript é a linguagem mais utilizada hoje em dia, e o numero de seus usuários só cresce.

Alt Text

Apesar disso, é do conhecimento de boa parte de seus usuários que o inicio do Javascript foi realmente conturbado em sua construção, gerando até varias piadas na internet sobre suas funcionalidades. Hoje tudo mudou, e varias versões do EcmaScript (European association for standardizing information and communication systems) foram surgindo para padronizar essas funcionalidades.

Em 2020, uma nova versão do EcmaScript surgiu, e com ela, varias funcionalidades foram incluídas nativamente aos browsers. Nesse artigo, vamos navegar por cada uma delas e descobrir suas utilidades. Está pronto?

BigInt

O numero de representações de inteiro foi uma das funcionalidades inseridas na nova versão do ES11. Antes, o máximo numero representativo no javascript era o número 9007199254740991.

Alt Text

Agora, com o bigInt, podemos ir além desse número.

Alt Text

Importação dinâmica

Agora, com o Javascript, podemos importar módulos dinamicamente módulos por meio de variáveis. Com isso, as variáveis que recebem os módulos conseguem englobar o namespaces desses módulos de uma forma global.

let Dmodule;

if("react") {
  Dmodule = await import('react')
}else{
  Dmodule = await import('vue')
}

/* É possivel utilizar Dmodule.(métodos) 
em todo o arquivo de forma global */
Enter fullscreen mode Exit fullscreen mode

Exportação de módulos

Uma nova sintaxe foi adicionada permitindo a exportação de módulos semelhante ao import que já existia, veja um exemplo abaixo:

// Já existente no JS
import * as MyComponent from './Component.js'

// Adicionado no ES11
export * as MyComponent from './Component.js'
Enter fullscreen mode Exit fullscreen mode

Optional Chaining

O Optional Chaining, conhecido pelos usuários do babel agora é suportado nativamente pelo Javascript. Essa funcionalidade remove a necessidade de condicionais antes de chamar uma variável ou método englobado a ela.

const user  = {
  "name": "Aryclenio Barros",
  "age": 22,
  "alive": true,
  "address": {
    "street": "Hyrule street",
    "number": 24,
  }
}

// Sem optional chaining
const number = user.address && user.address.number

// Com optional chaining
const number = user.address?.number
Enter fullscreen mode Exit fullscreen mode

Nullish Coalescing Operator

Um novo operador foi adicionado ao Javascript. Ele veio para causar discrepância entre o valor falsey do Javascript. Utilizamos a condição de falsey com o operador ||. Os valores falsey são:

  • 0
  • undefined
  • null
  • false
  • NaN

Alt Text

O novo operador somente engloba undefined e null, permitindo com que variáveis englobem os restantes do valores como true em uma condicional. Perceba que diferente do caso acima, os valores de 0, NaN e false são persistido em virtude de um valor não falsey.

Alt Text

Promise.AllSettled

O atributo Promise.AllSettled permite que você realize uma condicional que observa se todas as promises em um array foram resolvidas. Veja abaixo um exemplo:

const myArrayOfPromises = [
    Promise.resomve(myPromise),
    Promise.reject(0),
    Promise.resolve(anotherPromise)
]

Promise.AllSettled(myArrayOfPromises).then((result) => {
   // Do your stuff
})
Enter fullscreen mode Exit fullscreen mode

matchAll

O método matchAll é uma funcionalidade que detalha de uma forma melhor comparações de regex dentro de uma string. Seu resultado é um array que indica as posições, assim como grupo de string e a origem da pesquisa. Veja um exemplo de um regex que permite valores de 0 a 5 com o método matchAll.

Alt Text

Conclusão

Além dessas funcionalidades, algumas outras foram englobadas, você pode ver o conjunto completo de mudanças no site oficial da Ecma.

Espero que vocês tenham gostado e muito obrigado pela leitura. Convido vocês a lerem meus outros artigos e me seguirem aqui no dev.to.

Best regards!! :)

Sentry blog image

How to reduce TTFB

In the past few years in the web dev world, we’ve seen a significant push towards rendering our websites on the server. Doing so is better for SEO and performs better on low-powered devices, but one thing we had to sacrifice is TTFB.

In this article, we’ll see how we can identify what makes our TTFB high so we can fix it.

Read more

Top comments (0)

Qodo Takeover

Introducing Qodo Gen 1.0: Transform Your Workflow with Agentic AI

Rather than just generating snippets, our agents understand your entire project context, can make decisions, use tools, and carry out tasks autonomously.

Read full post

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay