"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Valeurs JavaScript par rapport à la référence

Valeurs JavaScript par rapport à la référence

Publié le 2024-07-31
Parcourir:217

JavaScript values vs reference

Comprendre comment les variables sont conservées en JavaScript : en tant que valeurs ou références

En JavaScript, ou plutôt en programmation, une variable est un emplacement dans la mémoire d'un ordinateur utilisé pour stocker des données. Les variables sont déclarées (avec un nom, un identifiant) et peuvent se voir attribuer une valeur immédiatement ou ultérieurement, selon la langue. Cette variable peut ensuite être référencée plus tard dans le programme plutôt que d'indiquer à nouveau explicitement la même valeur.

En JavaScript, les données sont transmises sous forme de valeurs, ces valeurs peuvent être des valeurs primitives ou des valeurs d'objet. En tant que développeur JavaScript, comprendre comment JavaScript gère les données est crucial pour avoir de solides bases dans le langage.

Les valeurs primitives incluent :

  • chaînes.
  • Nombres.
  • booléens.
  • BigInt.
  • Symbole.
  • Indéfini.

Les valeurs d'objet, en revanche, sont :

  • tableaux.
  • les fonctions.
  • objets.

Ces types de valeur se comportent différemment lorsqu'ils sont transmis, considérez l'extrait ci-dessous :

var monNom = "Fred";
var autreNom = monNom;
monNom = "Ashley";
console.log(monNom); //Ashley
console.log(autreNom); //Fred

Remarquez que otherName est resté le même même s'il ressemble à une "copie" de myName. En réalité, ce qui s'est réellement passé, c'est que lorsque myName a été attribué à otherName, il n'a pas été attribué en tant que copie de la chaîne "Fred", mais une nouvelle chaîne "Fred" a été créée. Ainsi, il n’y a pas de lien direct entre myName et otherName. C'est ainsi que JavaScript transmet les valeurs primitives.

Les valeurs des objets sont gérées différemment, jetez un œil à l'extrait ci-dessous :

var monObj = {couleur : "rouge"};
var autreObj = monObj;
monObj.color = "bleu";
console.log(monObj.color); //bleu
console.log(autreObj.color); //bleu

Ici, et l'objet a été créé et attribué à myObj, qui a ensuite été attribué à otherObj, voyez comment les propriétés de couleur otherObj et myObj ont toutes deux été modifiées simplement en modifiant la propriété de couleur de myObj. En effet, les valeurs des objets sont transmises sous forme de références. myObj ne fait pas directement référence à l'objet, il pointe plutôt vers sa référence, otherObj se voit alors attribuer myObj qui est une référence à l'objet réel. Par conséquent, les deux variables sont liées au même objet car elles pointent vers la même référence, un changement dans l'une affecte l'autre.

C'est pourquoi la comparaison (===) de deux objets renvoie directement false, vous comparez littéralement deux références différentes. Ici, myObj === otherObj renvoie true car nous comparons les mêmes références.

J'espère que cela vous donnera une nouvelle perspective sur le fonctionnement de JavaScript en coulisses.

D'ici là, restez sans bug.

Déclaration de sortie Cet article est reproduit sur : https://dev.to/js_cipher/javascript-values-vs-reference-1ao5?1 En cas de violation, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3