Maneres de definir una variable
Anem a veure les diferents maneres de definir una variable en JS.
Variables constants
La definim amb:
const foo = 'bar';
No es pot reasignar el valor de la variable foo. És a dir, que no podem fer:
foo = 'new_value';
Però sí que podem fer:
const foo = {
prop1: 'hey',
prop2: 'woho'
};
foo.prop1 = 'hey que tal';
Utilitzant var
Si definim una variable de la següent forma:
var foo = 'bar';
Aquesta variable passa a ser global dins del bloc de la funció en que es troba.
Utilitzant let
Si definim una variable utilitzant la paraula reservada let, aquesta variable
nomès estarà disponible dins del scope actual. És per això que és preferible
utilitzar let en comptes de var, si la variable només ha de ser accedida
dins del scope en que es declarada.
Com desestructurar un objecte
Si tenim:
const obj = {
prop1: 'ha',
prop2: 'he',
prop3: 'hi',
prop4: 'ho',
prop5: 'hu'
};
Podem fer el següent:
const { prop1, prop2, prop4 } = obj;
I tindrem disponibles les variables prop1, prop2 i prop4 amb el valor que
tenen dins de l’objecte obj.
console.log(prop1);
Valor per defecte en una desestructuració
Podem definir un valor per defecte en una desestructuració, de manera
que si aquella propietat és undefined, se li asigni un valor per defecte.
Si tenim:
const obj = {
prop1: 'ha',
prop2: 'he',
prop3: 'hi',
prop4: 'ho',
prop5: 'hu'
};
const { prop1, prop7 = 'pa' } = obj;
En aquest cas, com que no existeix la propietat prop7 dins de l’objecte obj,
la constant prop7 tindrà el valor per defecte. En aquest exemple pa.
Enllaç útil: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment
Obtenir la clau d’un objecte a partir del valor d’una variable
Si per exemple fem:
const foo = 'field1';
const obj = {
[foo]: 'bar',
field2: 'fuu'
}
L’objecte obj quedaria de la següent manera:
{
field1: 'bar',
field2: 'fuu'
}