{
	"title": "Bulletin de la Web Academy no 37",
	"summary": "Sortie de Chrome 80, ajout de deux fonctionnalités à JavaScript et rétrospective sur CSS par Evelyn Woods",
	"date_published": "2020-02-09",
	"authors": [
		{
			"name": "PolariTOON"
		}
	],
	"tags": [],
	"external_url": "https://polaritoon.github.io/web-academy/news/37-2020-02-09/",
	"id": "web-academy-news-no-37",
	"image": "./*.svg",
	"content_html": "<p><strong>Cet article a initialement été publié sur <em>Discord</em> avant d'être archivé ici et sur <a href=\"//polaritoon.github.io/web-academy/news/37-2020-02-09/\"><em>GitHub</em></a>.</strong></p>\n<div lang=\"fr\">\n\t<ul>\n\t\t<li>\n\t\t\t<p>Mardi dernier est sorti <em>Chrome 80</em> (et vendredi dernier <em>Edge 80</em>, qui suit le même cycle de développement), version symbolique pour son moteur <em>JavaScript</em> <em>V8</em> qui atteint sa version... <em>v8</em> ; il s'agit pour le navigateur d'une version qui ne brille pas que par l'ajout de nouvelles fonctionnalités, mais aussi par les nombreux retraits, notamment du côté des <em>web components</em>, et c'est somme toute une bonne nouvelle !</p>\n\t\t\t<ul>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté des outils de développements :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>La console supporte désormais les rédéclarations d'identifiants avec <code>let</code> et <code>class</code>, ce qui facilite énormément la réexécution du code précédent ; attention, il s'agit bien là d'une liberté prise vis-à-vis du standard <em>ECMAScript</em> ; ce n'est en aucun cas possible dans vos scripts !</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Dans l'onglet <em>Sources</em>, il est désormais possible de déboguer les sources des programmes compilés en <em>WebAssembly</em>, et non plus seulement les instructions machine <em>WebAssembly</em> elles-mêmes, grâce au standard <em>DWARF</em> ; autrement dit, si vous écrivez votre code en <em>C</em> par exemple, vous pourrez déboguer le code <em>C</em> lui-même</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté de <em>HTML</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>La version <em>v0</em> des <em>custom elements</em> et du <em>shadow DOM</em> n'est désormais plus supportée, la version v1 étant désormais approuvée et supportée par tous les navigateurs majeurs</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Les imports <em>HTML</em> ont également été retirés ; la voie actuellement explorée par <em>Microsoft</em> pour permettre ce genre de fonctionnalité est de passer par des modules <em>HTML</em> importables en tant que modules <em>ECMAScript</em>, mais pour ça il faudra d'abord très certainement une standardisation auprès du <em>TC39</em> des attributs de modules <em>ECMAScript</em></p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>La recherche programmatique dans une page d'un terme particulier n'est plus une peine, grâce à la nouvelle fonctionnalité <em>Scroll To Text Fragment</em> ; par exemple si vous cherchez le terme <code>documents</code> dans la page <code>https://example.org/</code>, vous pouvez vous rendre à l'adresse <code>https://example.org/#:~:text=documents</code> ; la syntaxe, plutôt étrange au premier abord, résulte en fait d'une étude minutieuse des options disponibles préservant la rétro-compatibilité</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté des <em>CSS</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>La valeur <code>anywhere</code> des propriétés <code>line-break</code> et <code>overflow-wrap</code> est désormais supportée et peut constituer une bonne alternative aux valeurs <code>break-all</code> et <code>break-word</code> de la propriété <code>word-break</code></p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté des <em>JS</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>L'opérateur de fusion nulle <code>??</code> est désormais supporté, et fonctionne comme l'opérateur <code>||</code>, en n'évaluant l'opérande droit que si l'opérande gauche est <code>null</code> ou <code>undefined</code></p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Les opérateurs <code>?.</code>, <code>?.[]</code> et <code>?.()</code>, qui permettent de chaîner optionnellement des accès à des propriétés ou bien des appels de fonctions, ont aussi été ajoutés</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Les <em>Workers</em> acceptent désormais un argument optionnel <code>{type: &quot;module&quot;}</code> permettant de les interpréter comme des modules <em>ECMAScript</em>, ce qui permet donc d'avoir recours à l'instruction <code>import</code> ! les <em>Service Workers</em> ne sont pas encore concernés par cet ajout</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p>Les constructeurs <code>CompressionStream</code> et <code>DecompressionStream</code> permettent désormais, comme leurs noms l'indiquent, de faire de la compression et décompression (<em>gzip</em> et <em>deflate</em> pour le moment)</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Du côté de <em>SVG</em> :</p>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<p><em>Chrome</em> supporte enfin les <em>favicons</em> <em>SVG</em> (vous savez, l'icône qui apparaît dans l'onglet du navigateur) ; ça ouvre de nouvelles possibilités dans tous les navigateurs : qualité conservée quelque soit la résolution de l'écran, mais aussi icône adaptative en fonction des <em>media queries</em> <em>CSS</em> (par exemple une icône différente selon que le thème du navigateur est clair ou sombre)</p>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Pour plus d'informations, consultez les pages <a href=\"https://developers.google.com/web/updates/2020/02/nic80,\">https://developers.google.com/web/updates/2020/02/nic80,</a> <a href=\"https://developers.google.com/web/updates/2019/12/devtools\">https://developers.google.com/web/updates/2019/12/devtools</a> et <a href=\"https://v8.dev/blog/v8-release-80\">https://v8.dev/blog/v8-release-80</a></p>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</li>\n\t\t<li>\n\t\t\t<p>De mardi à jeudi dernier se réunissait à nouveau le <em>TC39</em> pour spécifier <em>JavaScript</em> ; lors de la réunion, deux propositions relatives à l'internationalisation ont été standardisées :</p>\n\t\t\t<ul>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Le constructeur <code>Intl.Locale</code> permet d'analyser une chaîne de caractères spécifiant une locale <em>Unicode</em> ; consultez la proposition <a href=\"https://github.com/tc39/proposal-intl-locale\">https://github.com/tc39/proposal-intl-locale</a> ou bien la documentation <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Locale\">https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Locale</a></p>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<p>Le constructeur <code>Intl.NumberFormat</code> permet de manipuler des formats de nombres avec des unités physiques ou des devises, éventuellement en notation scientifique et en spécifiant des règles de signes ; consultez la proposition <a href=\"https://github.com/tc39/proposal-unified-intl-numberformat\">https://github.com/tc39/proposal-unified-intl-numberformat</a> ou bien la documentation <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NumberFormat\">https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NumberFormat</a></p>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</li>\n\t\t<li>\n\t\t\t<p>Evelyn Woods nous raconte dans un article de blog l'évolution de la mise en page <em>web</em> et des <em>CSS</em> durant ces 30 dernières années du point de vue des développeurs ; c'est un peu long, mais c'est à lire absolument ! et sans oublier les premiers commentaires qui sont assez incroyables ! c'est par ici : <a href=\"https://eev.ee/blog/2020/02/01/old-css-new-css/\">https://eev.ee/blog/2020/02/01/old-css-new-css/</a> !</p>\n\t\t</li>\n\t</ul>\n</div>\n",
	"banner_image": "./*.png"
}