Avant de nous diriger vers des données mutables ou immuables, nous devons initialement 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';Nous avons créé un objet nommé «Employé1» et lui a attribué quelques propriétés, dans la deuxième ligne, nous avons créé une variable «Employee2» et lui a attribué la variable «Employé1» ce qui signifie le «employé2«Aurait les mêmes propriétés que le «Employé1».
Ensuite, nous créons une autre variable avec le nom de «Employé3» Et nous lui attribuons des propriétés différentes.
Enfin, nous avons vérifié si «Employee2» et «Employé3» a les mêmes propriétés que «Employé1» 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';Vérifions si cela affecte la propriété du nom de l'employé2 ou non.
La sortie de notre code modifié sera:
À partir de la sortie ci-dessus, nous pouvons voir que les changements que nous apportons dans la propriété de «Employé1"A affecté la valeur de"employé2" aussi. Cela se produit parce que «employé2»A été créé avec la référence de «Employé1».
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';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 afficher la même sortie:
Changez maintenant la valeur de "Employé1"Et observer, cela changera la valeur de"employé2«Aussi ou restent les mêmes:
var employee1 = 'Daniel';Maintenant, observez la sortie:
L'exemple précise que lorsque nous modifions la valeur de Employé1, Cela n'affecte pas la valeur de la deuxième variable, ce qui signifie que JavaScript les traite tous les deux comme des variables distinctes.
Conclusion
Les données mutables peuvent être modifiées à tout moment tandis que les données immuables contredisent avec les données mutables car elles ne peuvent pas être modifiées. Dans cet article, nous avons expliqué la différence entre les types de données primitifs et les types de référence. Ensuite, nous avons compris 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.