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 soit des valeurs primitives, soit 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 :
Les valeurs des objets, par contre, sont :
Ces types de valeurs 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. Ainsi, 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.
En attendant, restez sans bug.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!