Données mutables et immuables en JavaScript

Données mutables et immuables en JavaScript

Le terme mutabilité signifie modifiable, le concept de mutabilité ne peut être appliqué qu'aux objets et aux tableaux en javascript. Le concept de mutabilité ne peut pas être appliqué aux données primitives telles que la chaîne, le booléen, le nombre, etc. Tandis que les données immuables se réfèrent aux données primitives dont l'état ne peut pas être modifié. Dans cet article, nous comprendrons la différence entre les données mutables et les données immuables à l'aide de certains exemples.

Avant de nous diriger vers des données mutables ou des données immuables, initialement, nous devons clarifier le concept de stockage des données dans les variables JavaScript. Les variables de JavaScript sont capables de stocker deux types de valeurs de type primitif ou de type de référence. Sept types de données primitifs sont disponibles en JavaScript tandis qu'il existe trois types de données de référence. La principale différence entre eux est, dans le type de données primitives, la mémoire est allouée dans la pile tandis que dans la référence Type de données, la mémoire est allouée dans le tas. Ainsi, en bref, le type de données primitif est le type de données de base tandis que le type de données de référence est l'objet composé de plusieurs fonctionnalités et ces objets sont passés en tant que référence.

Données mutables en JavaScript

Les objets mutables peuvent être modifiés ou révisés après leur création, mais doivent se rappeler, un objet peut avoir deux références, et il est également possible qu'il y ait deux objets avec les mêmes propriétés. Ainsi, plusieurs références pour un objet et deux objets avec des caractéristiques similaires sont deux choses différentes.

Implémentation de données mutables dans JavaScript

Voyons un exemple pour comprendre la mutabilité en javascript.

Laissez Employee1 = nom: "Joe Clarke", âge: 35, id: 123, ville: 'Londres';
Soit Employee2 = Employee1;
Laissez Employee3 = nom: "Joe Denly", âge: 25, id: 121, ville: 'Birmingham';
console.Log ("Vérifiez si Employee1 = Employee2", Employee1 === Employee2);
console.Log ("Vérifiez si Employee1 = Employee3", Employee1 === Employee3);

Nous avons créé un objet nommé employé et lui avons attribué certaines propriétés, dans la deuxième ligne, un autre objet a été créé nommé Employee2 et nous avons attribué un employé, ce qui signifie que l'employé2 aurait les mêmes propriétés que l'employé. Ensuite, nous créons un autre employé et nous lui attribuons des propriétés différentes. Ensuite, nous avons vérifié si «l'employé2» a les mêmes propriétés que «employé» ou non.

La sortie du code ci-dessus sera:

Maintenant, voyons ce qui se passe si nous modifions la valeur de «Employee1», cela affectera-t-il les propriétés de «Employee2»? Modifions notre code:

Laissez Employee1 = nom: "Joe Clarke", âge: 35, id: 123, ville: 'Londres';
Soit Employee2 = Employee1;
Employé1.name = "Dean Elgar";
console.Log ("Valeurs mises à jour de l'employee1:", Employee1);
console.log ("Valeurs mises à jour de l'employee2:", Employee2);

Modifions l'exemple précédent, par exemple, passant le nom de l'employé1 de «Joe Clarke» à «Dean Elgar» et vérifiez si cela affecte le nom de la propriété de l'employee2 ou non ou non.

La sortie de notre code modifié sera:

D'après la sortie donnée ci-dessus, nous pouvons voir que les changements que nous apportons dans la propriété de l'employé1 affectent également la valeur de l'employé2, cela se produit parce que l'employé2 a été créé avec la référence de l'employé11.

Données immuables en javascript

L'immuabilité fait référence aux valeurs primitives comme la chaîne, ou le nombre, etc. et en javascript, nous ne pouvons pas les modifier mais nous pouvons les réaffecter avec de nouvelles valeurs.

Implémentation de données immuables dans JavaScript

L'exemple donné ci-dessous vous aidera à comprendre les types de données immuables.

var employee1 = 'Daniel';
var employee2 = employee1;
console.Log ("Nom du premier employé:", Employee1);
console.Log ("Nom du deuxième employé:", Employee2);

Nous avons créé une variable et lui avons attribué une valeur. Ensuite, nous avons créé une autre variable et l'avons attribuée la première variable comme indiqué dans la capture d'écran dirigée ci-dessous.

Examinons maintenant la sortie, vous verrez les deux variables montrent la même sortie:

Maintenant, modifiez la valeur de «Employee2» et observera, cela modifiera la valeur de «Employee1» ou la valeur de la première variable restera la même:

var employee1 = 'Daniel';
var employee2 = employee1;
console.Log ("Nom du premier employé:", Employee1);
console.Log ("Nom du deuxième employé:", Employee2);
var employee2 = 'Bryn';
console.Log ("Nom mis à jour du 1er employé:", Employee1);
console.Log ("Nom mis à jour du 2ème employé:", Employee2);

Nous attribuons «Bryn» à la deuxième variable:

Maintenant, observez la sortie:

L'exemple précise que lorsque nous avons modifié la valeur de l'employee2, nous avons observé que la modification du nom de la deuxième variable n'affecte pas la valeur de la première variable, ce qui signifie que JavaScript les traite tous les deux comme des variables distinctes, et il réaffecte en fait la valeur à la deuxième variable.

Nous considérerons un autre exemple pour déterminer les données immuables en JavaScript.

var str = "bonjour";
console.log ("String original:", str);
Str.touppercase ();
console.Log ("String après la méthode ToupperCase:", Str);

Nous avons pris une variable de chaîne et lui avons attribué une valeur «bonjour», puis nous avons utilisé une méthode de chaîne «Toupper». Lors de l'exécution du programme, nous avons observé qu'il n'avait pas changé la chaîne car en javascript les chaînes sont des types de données immuables et ils ne peuvent pas être modifiés après la création.

La sortie du code ci-dessus sera:

Vous pouvez remarquer que la touppercase ne change pas les lettres en minuscules en lettres en haut car nous ne pouvons pas modifier les données immuables après sa création.

Conclusion

Les données mutables peuvent être modifiées à tout moment tandis que les données immuables contredisent avec les données mutables, ce qui signifie que les choses mutables ne peuvent pas être modifiées. Dans cet article, nous avons expliqué la différence entre les types de données primitifs avec des types de référence. Ensuite, nous comprenons l'idée de données mutables et immuables, à cette fin, nous avons pris quelques exemples et les avons mis en œuvre en JavaScript. Enfin, nous pouvons conclure que si nous modifions une valeur de la variable de référence, elle mutera également la valeur d'origine mais la variable primitive ne mute pas.