Pular para o conteúdo principal

39 postagens marcadas com "ECMAScript"

Ver todas os Marcadores

Blocos de inicialização estática da classe

· Leitura de 2 minutos
Shu-yu Guo ([@_shu](https://twitter.com/_shu))

A nova sintaxe de blocos de inicialização estática da classe permite que os desenvolvedores agrupem o código que deve ser executado uma vez para uma definição de classe específica e o coloquem em um único lugar. Considere o seguinte exemplo, onde um gerador de números pseudoaleatórios usa um bloco estático para inicializar um conjunto de entropia uma vez, quando a definição class MyPRNG é avaliada.

Atomics.wait, Atomics.notify, Atomics.waitAsync

· Leitura de 8 minutos
[Marja Hölttä](https://twitter.com/marjakh), uma blogueira não bloqueadora

'Atomics.wait' e 'Atomics.notify' são primitivas de sincronização de baixo nível úteis para implementar mutexes e outros meios de sincronização. No entanto, como 'Atomics.wait' é bloqueador, não é possível chamá-lo na thread principal (tentar fazer isso dispara um 'TypeError').

Índices de correspondência RegExp

· Leitura de 5 minutos
Maya Armyanova ([@Zmayski](https://twitter.com/Zmayski)), regularmente expressando novos recursos

O JavaScript agora está equipado com um novo aprimoramento de expressão regular, chamado “índices de correspondência”. Imagine que você deseja encontrar nomes de variáveis inválidas em código JavaScript que coincidem com palavras reservadas e exibir um acento circunflexo e um “sublinhado” sob o nome da variável, como:

`String.prototype.replaceAll`

· Leitura de 4 minutos
Mathias Bynens ([@mathias](https://twitter.com/mathias))

Se você já trabalhou com strings em JavaScript, é provável que tenha se deparado com o método String#replace. String.prototype.replace(searchValue, replacement) retorna uma string com algumas correspondências substituídas, com base nos parâmetros especificados:

`await` de nível superior

· Leitura de 5 minutos
Myles Borins ([@MylesBorins](https://twitter.com/MylesBorins))

await de nível superior permite que os desenvolvedores usem a palavra-chave await fora de funções assíncronas. Ele age como uma grande função assíncrona, fazendo com que outros módulos que o importam esperem antes de começar a avaliar seu corpo.

Coalescência nula

· Leitura de 7 minutos
Justin Ridgewell

A proposta de coalescência nula (??) adiciona um novo operador de curto-circuito destinado a lidar com valores padrão.

Você pode já estar familiarizado com os outros operadores de curto-circuito && e ||. Ambos lidam com valores “truthy” e “falsy”. Imagine o exemplo de código lhs && rhs. Se lhs (lido como, lado esquerdo) for falsy, a expressão avalia para lhs. Caso contrário, avalia para rhs (lido como, lado direito). O oposto é verdadeiro para o exemplo de código lhs || rhs. Se lhs for truthy, a expressão avalia para lhs. Caso contrário, avalia para rhs.

Encadeamento opcional

· Leitura de 5 minutos
Maya Armyanova ([@Zmayski](https://twitter.com/Zmayski)), destruidora de cadeias opcionais

Cadeias longas de acessos a propriedades em JavaScript podem ser propensas a erros, já que qualquer uma delas pode ser avaliada como null ou undefined (também conhecidos como valores “nulos”). Verificar a existência de propriedade em cada etapa facilmente se transforma em uma estrutura profundamente aninhada de instruções if ou uma condição if longa que replica a cadeia de acesso à propriedade:

`globalThis`

· Leitura de 2 minutos
Mathias Bynens ([@mathias](https://twitter.com/mathias))

Se você já escreveu JavaScript para uso em um navegador web antes, pode ter usado window para acessar o this global. No Node.js, você pode ter usado global. Se você escreveu um código que deve funcionar em qualquer um dos ambientes, pode ter detectado qual deles está disponível e usado isso - mas a lista de identificadores a verificar cresce com o número de ambientes e casos de uso que você deseja suportar. Isso foge do controle rapidamente: