Maison >interface Web >js tutoriel >Qu'y a-t-il dans la BOÎTE ?! : Variables
Qu'est-ce qu'une variable ? La plupart (en particulier les documents Web de Mozilla(MDN)) le décriraient comme "un conteneur pour une valeur". Un code nommé qui fait référence à un programme de toute sorte, des valeurs simples aux fonctions.
var foo = "I pity the..."; const group =['Rhonda', 'Jamey', 'Kori', 'Greg']; let greed = function (root) { console.log("of all evil"); }
Il est courant de décrire une variable "ressemblant à de petites boîtes en carton dans lesquelles vous pouvez ranger des choses.(MDN)" Sans ces boîtes, nos valeurs se ratatineraient et mourraient la chaleur du code, cessant d'exister peu de temps après la mise en œuvre. Comme dit dans le tome Eloquent JavaScript(EJS), les variables devraient "...être utilisées immédiatement ou (elles) se dissiperont" et là Il existe deux façons de créer ces conteneurs pour des expressions durables :
var question; let box; const cat;
var question = true; let box = null; const cat = 4 + 3;
La lecture de = donnera toujours à ce qui est à gauche la valeur de ce qui est à droite. C'est comme ça qu'on sait qu'il n'y a rien dans la boîte
Désormais, comme toute boîte ouverte, son contenu peut changer à tout moment. "* L'opérateur = peut être utilisé à tout moment sur des (variables) existantes pour les déconnecter de leur valeur actuelle et les faire pointer vers une nouvelle :*"(EJS)
let greenLight = false; //*the greenLight box contains the false value* greenLight = true; //*greenLight is now set to the value true*
La fausse valeur utilisée pour habiter cette boîte, mais avec un simple changement, il y a une toute nouvelle valeur à l'intérieur. C'est aussi simple que cela !
D'accord, j'ai l'impression que nous avons exploré et intériorisé en profondeur le concept conteneur, boîte. Voyons maintenant pourquoi c'est faux.
La philosophie du "conteneur" pour les variables est plutôt bonne pour beaucoup de choses, comme vous l'avez peut-être vu. Pourtant, à un moment donné, les cartons commencent à se compliquer :
let a = 5; let b = a; a = 7; console.log(b);// 5
Si la boîte b contient la boîte a et que la boîte b est remplie avec une nouvelle valeur, n'est-il pas la même chose pour a ? Je veux dire, deux boîtes assemblées ont tendance à avoir le même contenu une fois remplies, n'est-ce pas ? Faux. Le concept de boîte de variables devient déroutant quand on pense à ce genre de choses, car souvent, les variables ne se comportent pas du tout comme des boîtes.
Vraiment, dans ce cas, il vaudrait mieux considérer les données comme ayant été là depuis le début. Essentiellement, une variable rend simplement cette donnée importante et accessible. Les programmes flottent dans les vastes étendues du techSpace, et c'est à nos variables de "les attraper et les retenir"(EJS). C'est un peu étrange au début, mais cela a beaucoup de sens quand on y pense. Un JavaScript éloquent le décrit ainsi :
"Vous devriez imaginer les liaisons comme des tentacules plutôt que comme des boîtes. Elles ne contiennent pas de valeurs ; elles les saisissent : deux liaisons peuvent faire référence à la même valeur. Un programme ne peut accéder qu'aux valeurs auxquelles il a une référence Lorsque vous avez besoin de vous souvenir de quelque chose, soit vous faites pousser un tentacule pour vous y accrocher, soit vous y rattachez l'un de vos tentacules existants."
Maintenant, attach est un peu trompeur ici, puisque ces "tentacules" ne "saisissent" que des valeurs suffisamment petites pour être conservées (64 bits). Ces valeurs sont appelées « types de données simples » (EJS) et incluent des nombres, des chaînes et des booléens. Si une valeur est simple, notre tentacule va s'enrouler autour et s'y accrocher.. En quelque sorte.. Un acte que nous appelons Passer par valeur(GFG). Je dis en quelque sorte parce que si une valeur que notre tentacule recherche est assez simple, il ne prendra pas la peine de conserver la même, il en fera simplement une copie et la conservera pour lui-même :
Dans l'exemple ci-dessus, notre tentacule b n'a pas pris la peine de saisir le même 5 que a, donc quand a a changé ses rayures et que 5 a disparu dans l'espace, b s'est toujours retrouvé avec la copie de 5 qu'il détenait à l'origine. Essayons maintenant quelque chose d'un peu différent :
var a = [13, 40, 27]; var b = a; b.push(5, 1)//push is a method that moves these values into the end an array console.log(a);//[13, 40, 27, 5, 1];
This example is a bit more complex. Our complex dataTypes(arrays, objects, functions) are much to big to go around making copies of them to wrap our tentacles around, so what we do is simply point to the original. An act we like to call Pass by reference(GFG). In this example, b can't hold on to its own array, so when it goes through a change, the original array it points to feels that change pass through it.
This was a small introduction to how we name, grasp, point to, and otherwise utilize data for our own brilliant purposes. It's easy to overlook, but without variables, we would all be lost in a sea of code, digital waters all around us, grasping away as digital water falls right through our fingers. Variables are the boats that carry us all to our destination, and I, for one, appreciate the ride.
References by initial
(MDN)
https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps/Variables
(EJS)
https://eloquentjavascript.net/02_program_structure.html
(GFG)
https://www.geeksforgeeks.org/pass-by-value-and-pass-by-reference-in-javascript/
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!