O ES2021 foi aprovado! JavaScript를 사용하지 않는 목록 확인
5595 단어 ecmascriptjavascriptes2021node
A versão 2021 da especificação da ECMA está pronta e já foi validada! Então já sabemos o que vai vir por ai! Vamos a uma lista bem rapida.
논리적 할당 연산자
Esta é uma proposta que já está conosco há um tempo, eu mesmo já escrevi sobre ela . 기본 개념 및 아이디어 포함:
&&=
, ||=
전자 ??=
. O que eles fazem?A ideia básica é substituir os operadores ternários, por exemplo. Ao invés de fazermos algo deste tipo:
if (!user.id) user.id = 1
Ou até algo mais simples:
user.id = user.id || 1
Podemos fazer uma 교체:
user.id ||= 1
O mesmo vale para quando temos um operador de validação nula como
??
e o 및 com o &&
.숫자 구분 기호
Existe apenas para prover uma separação visual entre numeros no codigo. Então agora, podemos utilizar
_
no meio de numeros para separar suas casas sem contar como um operador ou uma parte do codigo, vou tirar o próprio exemplo da proposta para Demonstrar:1_000_000_000 // Ah, so a billion
101_475_938.38 // And this is hundreds of millions
let fee = 123_00; // $123 (12300 cents, apparently)
let fee = 12_300; // $12,300 (woah, that fee!)
let amount = 12345_00; // 12,345 (1234500 cents, apparently)
let amount = 123_4500; // 123.45 (4-fixed financial)
let amount = 1_234_500; // 1,234,500
Promise.any e AggregateError
Essas são as duas funções mais interessantes da proposta. Vamos começar com o
Promise.any
.Esta especificação permite uma variação do
Promise.all
. A diferença é que, quando tínhamos um erro no Promise.all
, 약속으로 todas eram rejeitadas. Já no Promise.any
, se qualquer uma das는 resolvida, teremos um resultado에 대한 약속입니다.Promise.any([
fetch('https://existeenaofalha.com.br').then(()=>'home'),
fetch('https://existeefalha.com.br').then(()=>'erro')
])
.then((first) => console.log('o primeiro resultado que vier'))
.catch((error) => console.error(error))
질문
AggregateError
é basicamente uma questão de facilidade. Como retornar uma sequencia de erros de várias는 que poderiam ter falhado를 약속합니까? Então uma nova classe de erros foi criada para que seja possível encadear e adicionar múltiplos erros em um único erro agregado.String.prototype.replaceAll
Antigamente, quando rodávamos algo como
'x'.replace('', '_')
, iríamos somente obter a substituição para aprimeira palavra uma única vez, se quiséssemos fazer isso no texto todo, teríamos que usar uma regex, como 'xxx'.replace(/(?:)/g, '_')
para obter uma substituição geral.COM
replaceAll
, temos o resultado da segunda usando a sintaxe da primira:'xxx'.replaceAll('', '_') //'_x_x_x_'
WeakRefs 및 FinalizationRegistry
Estas são duas APIs avançadas que devem ser evitadas se possível. 문서 작업에 대한 예를 들어 mas sim linkar diretamente para as documentações oficiais.
아이디어 다스
WeakRefs
입증된 uma referencencia fraca a um objeto na memória, esta referência permite que estes objetos sejam coletados pelo Garbage Collector livremente, liberando a memória que estão alocando assim que qualquer reference.sejare parareEm um caso normal, uma reference forte, como em listeners e outros objetos, iria impedir o GC de coletar a memória para que não haja nenhum tipo de erro de acesso futuro. Veja mais sobre ela na documentação .
Já os finalizers podem ou não ser usados em conjunto com as WeakRefs e provêm uma forma de executar uma função assim que o GC coletar estes objetos da memória. Mas não só estes objetos fracamente reference referencedos, os finalizers podem ser encaixados em qualquer objeto para executar um callback assim que eles forem coletados e destruídos. 베자 마이 na documentação .
let target = {};
let wr = new WeakRef(target);
// a WR e o target não são o mesmo objeto
// Criamos um novo registro
const registry = new FinalizationRegistry(value => {
// ....
});
registry.register(myObject, "valor", myObject);
// ...se você não ligar mais para `myObject` algum tempo depois...
registry.unregister(myObject);
Reference
이 문제에 관하여(O ES2021 foi aprovado! JavaScript를 사용하지 않는 목록 확인), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/azure/o-es2021-foi-aprovado-confira-a-lista-de-novidades-no-javascript-e8c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)