Quelle est la différence entre passer par la valeur et passer par référence dans JavaScript?

Quelle est la différence entre passer par la valeur et passer par référence dans JavaScript?
JavaScript est un langage de programmation qui donne à nos applications Web et à nos pages Web la possibilité de penser et d'agir en le rendant interactif et dynamique. Comme tout autre langage de programmation, JavaScript nous offre des fonctions qui sont un ensemble de commandes ou de déclarations définies qui sont exécutées uniquement lorsque nous appelons la fonction qui a ce code. La fonction prend une entrée ou certains arguments et renvoie la sortie. Les arguments d'entrée peuvent être transmis par valeur ou référence.

Ainsi, dans ce post, nous définirons les termes «passer par valeur» et «passer par référence» ainsi que des exemples en JavaScript, ainsi que d'expliquer les différences entre les deux.

Qu'est-ce que Pass-by-Value?

Une fonction est appelée directement en envoyant la valeur de la variable comme argument si cette fonction est passée. En conséquence, toutes les modifications apportées dans la fonction n'ont aucun impact sur la valeur initiale ou d'origine. La valeur d'origine n'est pas modifiée car lorsque nous passons la variable dans une fonction en tant qu'argument, la copie de cette variable est créée et donc toutes les modifications ou opérations effectuées à l'intérieur de cette fonction sont effectuées sur la variable de copie plutôt que la variable d'origine.

Exemple de valeur

Créons une fonction avec le nom de passbyvalue et modifier les valeurs des variables un et b qui sont passés comme arguments dans cette fonction. En dehors de la fonction, nous initialisons les variables A et B et leur donnons respectivement les valeurs 1 et 2. Ensuite, nous enregistrons ces valeurs.

fonction PassByValue (a, b)
a = 3;
b = 4;
console.journal ("à l'intérieur de la fonction")
console.Log ("A:", A, "B:", B); // 3, 4

Soit a = 1;
Soit b = 2;
console.Log ("Fonction extérieure. Avant d'appeler la fonction ");
console.Log ("A:", A, "B:", B); // 1,2
passbyvalue (a, b);
console.Log ("Fonction extérieure. Après l'appel de la fonction ");
console.Log ("A:", A, "B:", B); // 1,2

Nous verrons que lorsque nous enregistrons les valeurs des valeurs de A et B en dehors de la fonction, elle dira 1 et 2. Cependant, à l'intérieur de la fonction, les valeurs seront 3 et 4 et encore une fois après avoir appelé cette fonction, les valeurs ne changeront pas car à l'intérieur de la fonction, les copies ont été faites de a et b et des modifications ont été apportées à ces copies.

Qu'est-ce que le pass-par-référence?

Une fonction est appelée en fournissant la référence / l'adresse de la variable en tant que paramètre dans référence pass-by. En conséquence, la modification de la valeur dans la fonction modifie également la valeur en dehors de la fonction qui est la valeur d'origine. La fonction Pass-by-Reference est utilisée dans les tableaux et objets JavaScript.

Passer l'exemple de référence

Laissez-nous initialiser un objet et lui donner deux propriétés. Une propriété définit le nom de la machine et l'autre «est sur«Ce qui nous permet de savoir si la machine est activée ou non. Nous initialisons également une fonction avec le nom de passbyreference et modifier la valeur des propriétés d'objet de l'ordinateur comme le nom et l'iSON. Nous enregistrons ensuite ces propriétés avant et après avoir appelé la fonction:

fonction PassByReference (machine)
machine.name = "ordinateur";
machine.iSON = true;

Var Computer =
Nom: "Mycomputer",
ISON: FAUX
;
console.log ("avant d'appeler la fonction");
console.journal (ordinateur.est sur); // vrai;
console.journal (ordinateur.nom); // Ordinateur
PassByReference (ordinateur);
console.log ("après la fonction d'appel");
console.journal (ordinateur.est sur); // vrai;
console.journal (ordinateur.nom); // Ordinateur

Nous pouvons voir que les copies n'ont pas été faites dans la fonction et que les propriétés d'origine de l'objet informatique ont été modifiées, donc elle est transmise par référence.

Différence entre passer par valeur et passer par référence

La principale différence entre passer par valeur et passer par référence est que la passe par référence entre en jeu lorsque nous attribuons les primitives et que la valeur passe entre en jeu lorsque nous attribuons des objets. Les types de données primitifs incluent les nombres de chaînes, le booléen, les symboles et les valeurs comme Null et Undefined, et les types de données d'objet incluent des fonctions, des tableaux et des objets simples.

La deuxième différence majeure entre les deux est que la valeur pass-par rapport crée une copie, puis des modifications sont apportées à cette copie; Cependant, en passant par référence, aucune copie n'est effectuée et la modification est effectuée sur la variable d'origine.

Conclusion

Nous pouvons transmettre des valeurs dans une fonction via passer la valeur ou passer par référence. La réussite est effectuée sur les types de données primitifs comme la chaîne, le nombre, le booléen, et chaque fois que vous passez une variable à une fonction, il crée une copie de cette variable, puis modifie cette copie en valeur. Passe par référence est effectué sur le type de données de l'objet comme les fonctions, les tableaux et les objets simples, et dans le pass par référence, la valeur d'origine est modifiée car le passage par référence ne crée pas de copie.

Dans cet article, nous avons d'abord vu ce que passer par valeur est et passer par référence est et expliqué à la fois les phénomènes à l'aide d'un exemple, puis a poursuivi notre discussion en répondant à la question de la différence entre passer par la valeur et passer par référence dans JavaScript.