PC & Mobile

Comment des types variables peuvent déterminer la vie ou la mort de chats en JavaScript

Comment des types variables peuvent déterminer la vie ou la mort de chats en JavaScript


quand la portée importe et que la théorie de Schrodinger ne s’applique pas

Image composée par Aphinya Dechalert. Intitulé: Tibbers le fera-t-il dans votre code?

laisser et var est une de ces choses JavaScript que nous prenons pour acquis car elles semblent fonctionner de la même manière - jusqu’à ce qu’elles ne le soient pas.

Certaines personnes disent d'utiliser simplement laisser parce que c’est mieux, mais cela ne nous dit pas grand-chose en particulier. Ceci est dû au fait que la portée de JavaScript peut être un sujet vaste et original auquel personne ne veut vraiment s'attaquer.

Donc, pour le moment, nous allons déterminer si Tibbers vivra ou mourra - en fonction de la déclaration de type de variable choisie. C'est parce qu'en JavaScript, laisser et var n’est pas un scénario de chat Shrodinger et le statut est déjà prédéterminé en fonction de ce que vous avez utilisé.

* cue musique sinistre *

Lors de l'écriture de fonctions, nous essayons d'éviter autant que possible les injections de dépendance à des fins de cohésion. La dernière chose que nous souhaitons est un ensemble de fonctionnalités interdépendantes les unes des autres. Par conséquent, les variables déclarées deviennent la référence pour stocker des données perméables.

L'accès à ces données en JavaScript se fait souvent par le mot clé ce.

Mais ce est un mot clé mal interprété de manière contentieuse, qui a des répercussions sur le code en fonction de la façon dont il est consommé et de son emplacement par rapport à l'appel. Parfois, ce se sent comme il a une vie propre et d'une certaine manière, il fait.

La portée par défaut de ce se trouve au niveau de l'objet window, ce qui en fait un objet global accessible à tous ceux qui appellent ce contre un morceau de code déclaré particulier.

Par exemple:

Bien que cela puisse paraître simple, les choses commencent à devenir géniales quand on jette laisser.

En utilisant laisser étend votre variable au plus proche enfermant bloquer tout var est porté au bloc de fonction le plus proche. Ce n’est pas attaché à la la fenêtre objet et est son propre objet.

Jetons un coup d’œil à l’exemple ci-dessous:

Tandis que var exécute un genre de concert gratuit en se fixant à la la fenêtre objet (qui est synonyme de ce mot-clé), laisser limite la portée et limite le bloc, l'instruction ou l'expression où il est déclaré et utilisé.

Dans l'exemple ci-dessus, laisser chat est défini au niveau racine et existe en tant que son propre objet.

JavaScript est un langage lexical par conception. Cela signifie que l'héritage circule vers l'intérieur et qu'une variable extérieure à la fonction est disponible pour une utilisation à l'intérieur, mais pas l'inverse.

Les fermetures en JavaScript font partie d’un processus permettant d’imprimer des données au-delà de ce qui s’est passé dans la fonction.

Quand vous utilisez laisser, elle est portée au bloc de fermeture le plus proche. En bref, si vous voyez {accolades}, c’est un bloc. Un spécifique déclaré laisser n'existe que dans le bloc correspondant.

Si elle est déclarée au niveau racine, la variable est définie comme un objet global et accessible à tous. S'il est déclaré à l'intérieur d'une fonction, il est limité à ce bloc de fermeture - une sorte de variable privée sans être explicitement appelé privé.

Cela est pratique lorsque vous voulez faire quelque chose dans votre fonction mais que vous ne voulez pas que cela ait un impact sur les valeurs qui peuvent avoir le même nom en dehors. Il devient "caché" et n’existe plus au-delà de la paire de {accolades} dans laquelle il se trouve.

Le code suivant n’est pas la meilleure représentation pour les meilleures pratiques mais montre laisser bloquer la portée et l'héritage entrant.

Parfois, vous avez simplement besoin d’une donnée qui reste constante dans votre code. Cela signifie que vous ne pouvez pas modifier la valeur une fois celle-ci définie, même si vous avez essayé. Si vous voulez vraiment le changer, vous devrez le faire physiquement à la source.

C’est essentiellement ce que const est.

const se comporte comme laisser avec l'avertissement que vous ne pouvez pas le changer une fois qu'il est déclaré. Cela s'avère pratique pour des éléments qui ne risquent pas de changer, tels que les valeurs de taxe, les unités de conversion et le nombre maximal de types d'article dans un panier.

Si vous essayez de changer un const valeur, votre console va lancer une erreur qui ressemble à ceci:

Quand nous mettons tout ensemble, en utilisant var et laisser à des endroits spécifiques peut entraîner un résultat différent pour une variable spécifique. Bien que la plupart des cas ne soient pas aussi dramatiques que de déterminer si un chat va vivre ou mourir, cela peut également faire la différence entre l’ajout correct d’un article au panier et le calcul correct de règles fiscales complexes.

Alors regardons le code ci-dessous et nous allons le parcourir ensemble. Veuillez noter que l'imbrication n'est pas la méthode recommandée pour écrire du code, mais uniquement utilisée ici à des fins de démonstration de la portée.

// 1: reviendra Tibbers est en vie car il est défini comme une variable globale à la ligne 1.

// 2: reviendra Tibbers est en vie car il est défini comme une variable globale à la ligne 2.

// 3: reviendra Tibbers est en sécurité car un nouvel objet a été créé. L'objet d'origine à la ligne 1 reste inchangé.

// 4: reviendra Tibbers est en sécurité car un nouvel objet a été créé et attaché à la firstJump () une fonction.

// 5: reviendra Tibbers est en vie parce que ce se réfère à l'objet qui est immédiatement à l'extérieur, qui dans ce cas est le global la fenêtre objet.

// 6: reviendra Tibbers est mort car il fait directement référence à l'objet déclaré à l'intérieur {}

// 7: reviendra Tibbers est mort car il fait directement référence à l'objet déclaré à l'intérieur {}

// 8: reviendra Tibbers vole et modifie en permanence la variable déclarée à la ligne 6.

// 9: reviendra Tibbers miaule et modifie de façon permanente les variables déclarées à la ligne 13, tandis que la ligne 5 reste inchangée.

// 10: reviendra Tibbers est en vie parce que toutes les variables déclarées à l'intérieur de la fonction sont leurs propres variables séparées ou sont simplement mises à jour à la portée du bloc le plus proche.

// 11: reviendra Tibbers vole parce qu'il a été modifié en permanence par ce mot-clé, qui fait référence à l'objet window.

La totalité var et laisser Cela peut être compliqué, surtout lorsque les mêmes noms de variables sont utilisés. Mais cela se produit à l'état sauvage et bien plus que tout le monde voudrait.

Si cela reste un peu déroutant, la meilleure façon de s'en souvenir est que laisser l'accessibilité est limitée à la {}il existe dans tout var est accessible dans le une fonction(){} bloc.

Changements à laisser la valeur est portée à la plus proche déclarée laisser valeur.

Si les variables sont déclarées au niveau global, ce mot-clé est le moyen d'accéder var et la variable se nomme pour laisser variables.

Merci pour la lecture. ❤

Aphinya

Show More

SupportIvy

SupportIvy.com : Un lieu pour partager le savoir et mieux comprendre le monde. Meilleure plate-forme de support gratuit pour vous, Documentation &Tutoriels par les experts.

Related Articles

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Close
Close