L'operatore optional chaining è una delle novità più interessatati di ES2020. Con questo operatore possiamo accedere a una proprietà annidata all'interno di un oggetto senza vericarne l'esisteza e quindi senza ricevere il classico errore Uncaught TypeError: Cannot read property 'abc' of undefined
. Purtroppo però non è ancora supportato da tutti i browser, nel frattempo possiamo utilizzare questo trucchetto per evitare di verificare l'esistenza delle chiavi con vari if
:
const obj = { a: 1, b: { c: 3 } }
console.log(((obj.b || {}).c || {}).d || {}) // => {}
Ci sarà sicuramente capitato di dovere rimuovere i valori duplicati all'interno di un array, per fare questa operazione abbiamo diverse opzioni ma utilizzando i Set ES6 possiamo rimuovere i duplicati con una riga di codice:
const items = ["a", "b", "a", "c", "a", "b"]
console.log([...new Set(items)]) // => ["a", "b", "c"]
In javascript non abbiamo molte soluzioni "native" per rimuovere le proprietà degli oggetti, possiamo utilizzare l'operatore delete che è un po' malvisto oppure installare alcune librerie come ad esempio lodash. Con l'introduzione dello destructuring assignment di ES6 possiamo fare questa operazione in maniera molto più semplice:
const obj = {
a: 1,
b: 2,
c: 3
}
const { a, ...objWithoutA } = obj
console.log(objWithoutA) // => { b: 2, c: 3 }