Tuples, Records og .at() - dette blir nytt i JavaScript

Immuterbar JavaScript, filstruktur-o-rama, tilgjengelighet og at() i EcmaScript 2022.

Tuples og Records, to nye primitiver implementert i JavaScript. 📸: Ole Petter Baugerød Stokke
Tuples og Records, to nye primitiver implementert i JavaScript. 📸: Ole Petter Baugerød Stokke Vis mer

Dette var uken for en oversett fotgjenger 🚷, kondensert vann i høy fart 💧, og et lite komisk øyeblikk i en ellers bekmørk og forferdelig situasjon ⚫️.

Og 1308 ting skjedde i frontend-verdenen!

Immuterbar JavaScript ✋

Det skjer ting i JavaScript også! En interessant endring i språket som er i emning er Tuples og Records, som er to nye primitiver implementert i JavaScript.

En tuple er som en immuterbar array, og en record er som et immuterbart objekt. De nye primitivene annoteres med #. Og hvis du ikke er solgt allerede, kan vi også fortelle at disse støtter sammenligning av verdier fremfor identitet!

// Tuples
a = #[1, 2, 3]; 
b = #[1, 2, 3];
console.log(a === b); // true
// Records
c = #{e: 1}
d = #{e: 1}
console.log(c === d); // true

Foreløpig er disse et såkalt stage 2 proposal for JavaScript, som betyr at det ikke er implementert i f. eks nodeJS eller nettlesere ennå, men at de likevel er relativt stabile.

Filstruktur-o-rama 📁

På mitt aller første frontendprosjekt brukte vi React og Redux med TypeScript, og koden var strukturert inn i mapper med navn som “actions”, “reducers”, “types”. I utgangspunktet var jo dette ganske ryddig, men utfordringene med et sånt oppsett viste seg fort da jeg som fersk utvikler skulle lage en ny feature.

Det førte til kodeendringer på tvers av alle disse mappene, og for meg som var ny i gamet, føltes det tungt å finne frem og få oversikt.

I forrige uke ble det publisert en artikkel som tar for seg ulike måter å organisere din React-applikasjon, der artikkelforfatter ender opp med å argumentere for feature-dreven mappestruktur. Det er ingen overraskelser her, men en grundig og morsom gjennomgang som iallfall fikk meg til å tenke over mappestrukturen til mine prosjekter.

Er vi flinke nok til å lage tilgjengelige løsninger?

I forrige uke dukket det opp en artikkel som tar for seg perspektiver om tilgjengelighet i webtjenester. Artikkelforfatter tar et lite oppgjør med apatiske holdninger til universell utforming, og mener vi må lære om det tidligere i karrierene våre, og få inn universell utforming som en naturlig del av design- og utviklingsarbeidet.

Artikkelen nevner noen eksempler på hvordan forfatter mener man kan øke kunnskap og få til holdningsendringer i bransjen; dokumentasjon må inneholde tilgjengelige kodeeksempler, design må inneholde tilgjengelighetsannotasjoner, og konferanser må ha en substansiell del om tilgjengelighet, og videre.

Man får attpåtil et par pekere på hva man burde ta en titt på hvis man er interessert i å gjøre en liten endring her og nå!

Ny at()-metode i EcmaScript 2022

Mitt aller første programmeringsspråk var Python. Da jeg senere begynte å kode i JavaScript forsøkte jeg flere ganger å slenge på en [-1] etter arrayene mine for å hente ut det siste elementet slik man gjør i Python. Til min skuffelse fant jeg fort ut at det ikke fungerer… Iallfall ikke før nå!

Med EcmaScript 2022 innføres .at() som tar inn en index og gir deg en verdi fra en array (eller en string). Og det beste med hele saken er at .at(-1) henter ut det aller siste elementet, så det er jo et flott lite triks!

Det var alt vi hadde for denne gangen, takk for at du leste, også sees vi forhåpentligvis i neste ForrigeUke! 👋