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'
}