Une exploration des possibilités offertes par les décorateurs JavaScript. Ils sont au stage 3 sur 4 de leur standardisation, mais sont déjà supportés par TypeScript et Babel.
J'ai toujours un peu du mal avec cette façon de faire. Je trouve que ça ajoute une couche de magie un peu trop abstraite et invisibilisée à mon goût, mais j'essayerai de m'y mettre.
Pas le premier et certainement pas le dernier article que je partagerai sur la nouvelle API Temporal
en JavaScript.
Celui-ci s'attarde sur Temporal.ZonedDateTime
et insiste sur les différences entre une date au format numéraire pur (type timestamp UNIX) ou au format UTC qui représente un instant unique universel, et Temporal.ZonedDateTime
qui y ajoute la localisation où cette date est née : le fuseau horaire. Une sorte de contexte qui lui est ajouté.
Ce n'est pas toujours utile mais pour certains usages c'est une information importante qui est perdue lorsqu'on stocke une date en UTC.
L'article présente également des exemples de cas qui entraînent souvent des erreurs : les ajout d'heures ou de jours à une date aux abords du passage à l'heure d'été ou d'hiver.
Méfiez-vous des objets créés dans le scope global. Ils peuvent très rapidement constituer un memory leak.
Il n'y a rien de plus performant que d'utiliser les APIs DOM directement, sans framework.
Cet article regroupe quelques bonnes pratiques si vous avez besoin de performances optimales.
Une interface JavaScript pour ffmpeg.
Un wrapper léger autour du client HTTP natif moderne de JavaScript, fetch
, qui ajoute notamment des facilitateurs pour le format JSON, une mécanique de retry, et des intercepteurs mieux foutus que ceux d'axios.
Un jeu tout simple développé en moins de 100 lignes de JavaScript.
Une explication assez détaillée mais néanmoins digeste de ce qu'est l'event loop et de comment en tirer parti lorsque vous avez à traiter des données inhabituelles, j'entends par là des gros volumes ou des tâches intensives niveau CPU.
Un guide pour l'usage de Playwright.
Créer un package npm qui supporte à la fois CommonJS et ESModule.
Quelques façons de loguer dans la console de manière un peu plus structurée en JavaScript.
Un remplaçant pour StandardJS (un ensemble de règle sur la façon d'écrire du code JS) qui :
Tuto extrêmement complet sur le language JavaScript.
Un 🇬🇧 article qui explique ce que sont les Promises (promesses) JavaScript en partant de zéro. Une notion indispensable.
Explications et exemples à propos de Promise.withResolvers()
qui arrive bientôt dans JavaScript. L'usage est situationel mais ça reste utile à connaître.
Comment déclencher un téléchargement dans le navigateur purement en local depuis le code JavaScript, en utilisant l'objet Blob
.
J'ai vérifié, ça fonctionne même en local en ouvrant simplement un fichier HTML dans votre navigateur, pas besoin de serveur HTTP.
Je me dis que ça peut être très utile par exemple pour partager une espèce de mini application qui pré-calcule un truc et permet de l'exporter en CSV ou JSON. Un calculateur de salaire par exemple, un ou petit outil pour estimer un risque.
Je me copie-colle le snippet en dessous.
const blob = new Blob(
[ /* CSV string content here */ ],
{ type: 'text/csv' }
);
function downloadBlob(blob, filename) {
const url = URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = url;
a.download = filename || 'download';
const clickHandler = () => {
setTimeout(() => {
URL.revokeObjectURL(url);
this.removeEventListener('click', clickHandler);
}, 150);
};
a.addEventListener('click', clickHandler, false);
a.click();
}
downloadBlob(blob, 'result.csv');
Enfin un 🇬🇧 article clair sur ce que sont les WeakMap
en JavaScript et quels sont les cas d'usage.
Elles servent à attacher une valeur à un objet de manière "externe", sans modifier l'objet lui-même. Un peu comme si vous êtes vendeur dans un magasin et attachez l'étiquette avec le prix sur un objet. Si l'objet disparaît, l'étiquette disparaît aussi. Donc si l'objet auquel vous attachez la WeakMap
est supprimé par le garbage collector, votre WeakMap
l'est aussi.
C'est donc parfait pour attacher une computed property à un objet par exemple, ou pour créer des propriétés réellement privées qui ne seront pas accessible à du code qui n'a pas accès à la WeakMap
.
Ce sont des cas bien spécifiques mais c'est intéressant de savoir que ça existe.
Comprendre ce qu'est un virtual DOM en en créant un de zéro. C'est très intéressant et très malin.
Une initiation à Playwright, un outil de testing visuel pour le web.