Maison >interface Web >js tutoriel >Qu'y a-t-il dans la BOÎTE ?! : Variables

Qu'y a-t-il dans la BOÎTE ?! : Variables

王林
王林original
2024-08-10 11:42:02923parcourir

Petites boîtes


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");
}

What

Photo par MDN

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 :

  • Déclaration : signifie exactement ce à quoi cela ressemble. Déclarer une variable confirme son existence et son nom, mais rien d'autre. La boîte n'est pas ouverte, nous ne pouvons donc pas voir son contenu ou sa valeur. Parce que la boîte est fermée, mais que nous nous attendons à ce qu'il y ait quelque chose à l'intérieur,(Ambiance Schrödinger, ça vous dit ?) nous donnons à ces boîtes la valeur bien nommée undéfini.
var question;
let box;
const cat;
  • Initialisation : l'initialisation est la manière JavaScript de dire "Il y a une boîte ici, et voici ce qu'il y a à l'intérieur." Cette boîte apparaît grande ouverte et nous pouvons facilement voir son contenu. "L'opérateur ="(EJS) est utilisé pour désigner ce qu'il y a à l'intérieur de la boîte. Ce qui pourrait être n'importe quoi, en fait. Ou rien.. Pour dire "Cette boîte est ouverte, mais il n'y a définitivement rien dedans" on utilise le terme null. Voici quelques exemples d'initialisation :
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.

Apprenez la boîte. Oubliez la boîte.

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.

What

Liens et tentacules

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Dévoiler la magie d'InternetArticle suivant:Dévoiler la magie d'Internet