Tirez parti des variables définies par l'utilisateur dans JavaScript

Les langages de programmation sont presque inutiles sans variables. Ces zones spéciales contenant des informations peuvent stocker des nombres, des chaînes de texte, des objets et d'autres types de données. Une fois stockées, ces informations peuvent être utilisées plus tard dans votre programme. Avec une variable, le nom d'une personne peut être stocké et utilisé à un moment donné du script.

Les variables sont des détenteurs temporaires d'informations. Ils peuvent contenir:

  • Valeurs numériques («nombres») - nombres qui peuvent être additionnés. Exemple: 2 + 2 donnent 4
  • Chaînes de caractères - une collection de texte, comme "JavaScript" ou "Mon nom est Mudd"
  • Valeurs vrai / faux - le booléen vrai et faux
  • Objets - JavaScript ou objets définis par l'utilisateur (les variables JavaScript peuvent contenir quelques autres types de données, mais ce sont de loin les types les plus courants)

(Remarque: comme avec la plupart des langages de programmation modernes, JavaScript prend en charge les variables de tableau en plus des variables scalaires de base utilisées pour contenir les types de données ci-dessus. Nous allons nous concentrer sur les variables à valeur unique pour cette colonne et consacrer une colonne séparée aux tableaux.)

Les variables JavaScript "appartiennent" au document de script qui les a créées; les variables sont perdues lorsque le document est déchargé. De plus, le contenu d'une variable est effacé lorsque vous lui attribuez une nouvelle valeur. Bien qu'une variable créée dans un script de document ne soit généralement pas vue par un autre script de document, JavaScript fournit des moyens de partager des variables entre les scripts. Vous faites cela en référençant le nom du document avec le nom de la variable.

Plusieurs instructions JavaScript créent et stockent des variables, mais le moyen de base pour ce faire manuellement est d'utiliser l'opérateur d'affectation égal (=). La syntaxe de base est:

NomVariable = valeur

Le premier argument est le nom de la variable. Les noms de variables peuvent être très longs, mais vous êtes limité dans les caractères que vous pouvez utiliser. Pour plus d'informations sur les noms de variable valides, consultez la section sur les limites de nom de variable.

Le deuxième argument est le contenu de la variable. Vous pouvez mettre toutes sortes de choses dans une variable, y compris un nombre, une chaîne, une expression mathématique (comme 2 + 2) et diverses autres choses que nous aborderons dans un instant.

Les utilisateurs Pascal peuvent être tentés de construire l'affectation de variable en utilisant: =. Sachez que cette syntaxe n'est pas prise en charge dans JavaScript.

Voici un aperçu plus spécifique des quatre contenus les plus courants que vous pouvez placer dans les variables JavaScript, y compris des exemples.

Contenu placé dans des variables JavaScript

Nombres dans les variables

Un nombre est un ou plusieurs chiffres stockés dans l'ordinateur de manière à ce que JavaScript puisse effectuer des calculs mathématiques avec eux. JavaScript prend en charge les nombres entiers et les valeurs à virgule flottante. Pour placer un nombre dans une variable, indiquez simplement le nom de la variable, le signe égal (l'opérateur d'affectation de variable) et la valeur que vous souhaitez utiliser. Par exemple, voici ce que vous faites pour placer le nombre 10 dans une variable nommée MyVar:

MyVar = 10;

Chaînes dans les variables

Une chaîne est un ou plusieurs caractères de texte organisés en mémoire dans un seul fichier. Les chaînes peuvent contenir des nombres (chiffres), des lettres, de la ponctuation ou une combinaison de ces éléments. Les calculs mathématiques ne peuvent pas être effectués sur des chaînes. Les chaînes sont affectées aux variables JavaScript en étant placées dans un ensemble de guillemets simples ou doubles:

"Je suis une chaîne"

ou

'Je suis une chaîne'

Notez que les guillemets doubles ou simples sont acceptables; contrairement à certains langages, comme Perl, JavaScript ne fait aucune distinction entre les deux formes de guillemets. Cet exemple de travail montre comment placer une chaîne dans une variable:

MyVar = "Ceci est JavaScript";

Valeurs booléennes dans les variables

Il existe deux valeurs booléennes: true et false. Certains langages de programmation n'ont pas de jeu distinct de valeurs booléennes et utilisent à la place 0 pour false et 1 ou -1 (ou toute autre valeur non nulle) pour true. JavaScript peut utiliser ces nombres pour représenter vrai et faux mais, en plus, réserve les mots "vrai" et "faux" pour signifier booléen vrai et faux. Vous pouvez considérer les valeurs booléennes true et false comme étant équivalentes à on / off ou yes / no. Pour affecter une valeur booléenne à une variable, indiquez uniquement le mot true ou false, sans guillemets. Voici un exemple:

MyVar = vrai;

Objets dans les variables

Les variables peuvent contenir des objets, y compris des objets JavaScript. Il existe essentiellement deux types de variables d'objet:

  • Les variables qui contiennent des objets intégrés liés au navigateur (fenêtre, document, navigateur, etc.) sont en fait des références à l'objet d'origine. Ce sont comme des copies, mais les copies changent si l'original change. Dans certains cas, apporter une modification à l'objet dans la variable affecte l'objet JavaScript d'origine.

  • Les variables qui contiennent des objets définis par l'utilisateur représentent l'objet réel. Apportez une modification à l'objet dans la variable et vous ne modifiez que cet objet.

Pour affecter un objet JavaScript à une variable, indiquez le nom de l'objet, comme dans:

MyVar = navigateur;

Pour affecter une nouvelle copie d'un objet défini par l'utilisateur à une variable, utilisez la nouvelle instruction et indiquez le nom de la fonction d'objet:

MyVar = nouveau monObjet ();

SUBHEAD Limites de nom de variable

En ce qui concerne les noms que vous pouvez donner aux variables, JavaScript offre une grande latitude. Les variables JavaScript peuvent être presque illimitées en longueur, bien que pour des raisons pratiques, vous garderez probablement vos noms de variables sous 10 ou 15 caractères. Des noms de variables plus courts aident JavaScript à exécuter le programme plus rapidement. Gardez les points suivants à l'esprit lorsque vous nommez vos variables:

  • Les noms de variables doivent être composés uniquement de lettres - sans espaces. Vous pouvez utiliser des nombres tant que le nom ne commence pas par un chiffre. Par exemple, MyVar1 est acceptable, mais 1MyVar ne l'est pas.

  • N'utilisez pas de caractères de ponctuation dans les noms de variables. Exception: le caractère de soulignement (_). Autrement dit, la variable My_Var est acceptable, mais My * Var ne l'est pas. Les variables peuvent commencer par le caractère de soulignement.

  • Les noms de variable sont sensibles à la casse. La variable MyVar est une variable nettement différente de myVar, myvar et d'autres variantes.

Comprendre les types de données variables "lâches" de JavaScript

Contrairement à certains autres langages de programmation, en JavaScript, il n'est pas nécessaire de définir explicitement le type de variable que vous souhaitez créer. Ce comportement JavaScript est appelé «typage de données lâche» et diffère de C et Java, qui utilisent tous deux un typage de données strict.

En JavaScript, il n'est pas nécessaire de différencier les types de variables en ajoutant des caractères spéciaux à la fin du nom de la variable, tels que MyVar $ pour une variable chaîne (ou, d'ailleurs, $ MyVar pour une variable scalaire, à la Perl). JavaScript décode en interne le type de variable en fonction de son contenu.

Utilisation de l'instruction var pour affecter une variable

JavaScript prend en charge une instruction var qui peut être utilisée pour définir explicitement une variable. La syntaxe est simplement l'instruction var, un espace et la même expression d'affectation de variable détaillée ci-dessus. Par exemple:

var MyVar = "Ceci est une variable";

Vous pouvez également utiliser l'instruction var avec le nom de la variable pour déclarer la variable sans lui définir de valeur:

var MyVar;

Dans ce cas, vous avez défini MyVar en mémoire mais vous ne lui avez pas encore attribué de valeur. Cette technique est souvent utilisée lors de la configuration de variables globales - des variables qui peuvent être librement partagées n'importe où dans votre script. Pour plus d'informations sur les variables globales, reportez-vous à la section "Comprendre la portée des variables" ci-dessous.

Limitations de longueur de chaîne

JavaScript impose une limite de 254 caractères pour chaque affectation de variable de chaîne dans votre programme. Si vous dépassez la limite de 254 caractères, JavaScript répond avec un message d'erreur "Littéral de chaîne non terminé". (Remarque: il s'agit fondamentalement d'une limite de JavaScript dans Netscape 2.0x; c'est une bonne idée de l'observer car tous les utilisateurs n'ont pas adopté Netscape 3.0.)

Vous pouvez créer des chaînes plus longues en les "assemblant" - à condition que chaque pièce ne comporte pas plus de 254 caractères. Après avoir affecté une chaîne à chaque variable, vous les combinez à l'aide du caractère +. C'est ce qu'on appelle la «concaténation». L'exemple suivant montre comment fonctionne la concaténation:

MyVar = "Ceci est le début" + de la façon dont vous "+" pouvez créer des chaînes ";

Chaque segment de chaîne individuel - défini par du texte entre guillemets - peut comporter jusqu'à 254 caractères. Pour rendre une chaîne de plus de 254 caractères, ajoutez simplement plus de segments. Une autre approche consiste à créer des chaînes à l'aide de l'opérateur d'affectation + =, comme ceci:

MyVar = "Ceci est le début" MyVar + = "de la façon dont vous" MyVar + = pouvez créer des chaînes "

Vous pouvez continuer à concaténer des chaînes de cette façon tant que votre ordinateur dispose de la mémoire pour cela. Mais, alors que JavaScript peut contenir des chaînes plus grandes que celles possibles dans de nombreux autres langages de programmation (comme le 64K typique de Basic), cela peut gravement dégrader les performances du système. De toute évidence, vous ne créerez pas beaucoup d'énormes variables de chaîne. Il est juste agréable de savoir que, si nécessaire, une variable JavaScript peut contenir autant de texte.

Comprendre la "portée" des variables

La "portée d'une variable" n'a rien à voir avec l'optique ou le bain de bouche, mais plutôt la mesure dans laquelle une variable est visible par d'autres parties d'un programme JavaScript. À moins que vous ne fournissiez des instructions explicites pour indiquer le contraire à JavaScript, la portée de ses variables est gérée comme suit:

  • Les variables définies en dehors d'une fonction sont disponibles pour n'importe quelle fonction du script, à condition que toutes les variables soient définies dans le script du même document HTML. Celles-ci sont appelées variables globales.

  • Les variables définies dans une fonction sont également globales, en supposant que l'instruction var n'est pas utilisée lors de la première déclaration de cette variable. Autrement dit, MyVar = "bonjour".

  • Les variables définies dans une fonction avec l'instruction var sont "locales" pour cette fonction uniquement. Celles-ci sont appelées variables locales.

  • Les variables globales restent en mémoire même après l'arrêt de l'exécution d'un script. La variable reste en mémoire jusqu'à ce que le document soit déchargé.

Les variables locales sont traitées comme si elles n'existaient pas en dehors de la fonction où elles sont définies. De cette façon, vous pouvez utiliser le même nom de variable dans une fonction, et cette variable n'interférera pas avec la variable du même nom ailleurs dans le script.

Voici un exemple qui le démontre. Lorsque vous cliquez sur le bouton, le script affiche trois boîtes d'alerte. Les détails suivants expliquent ce qui se passe lorsque vous cliquez sur le bouton:

  • JavaScript appelle firstFunction, qui attribue une valeur de 1 à une variable locale nommée MyVar. Le contenu de MyVar s'affiche.

  • JavaScript appelle secondFunction, qui attribue une valeur de 2 à une variable locale, également appelée MyVar. Le contenu de MyVar s'affiche.

  • JavaScript retourne à firstFunction, où le contenu de MyVar est à nouveau affiché. Le résultat est 1, qui est la valeur de MyVar local à firstFunction.

Référencer des variables dans d'autres documents chargés

Lors de l'utilisation de cadres, il est souvent nécessaire de partager des variables entre les documents. Une ou plusieurs images peuvent nécessiter une variable contenue dans une autre image. De par leur nature, les variables (même globales) ne sont pas visibles en dehors du document qui les a créées. Ainsi, lorsque vous souhaitez référencer une variable dans un autre document - et en supposant que ce document est chargé dans le navigateur - vous devez référencer explicitement cette variable en ajoutant le nom de la fenêtre devant le nom de la variable. Voici la syntaxe:

winname.varname

winnameest le nom du document et varnameest le nom de la variable. Plus d'informations sur les noms de documents dans un peu.

Vous pouvez affecter et référencer des variables à l'aide de la technique suivante. Par exemple, cela définit la variable MyVar dans la fenêtre mydoc sur 1:

mydoc.MyVar = 1;

Le code ci-dessous attribue la valeur d'une variable MyVar locale dans la fenêtre mydoc.

VarInThisDoc = mydoc.MyVar;

D'où viennent les noms des fenêtres? Tout dépend de la façon dont les fenêtres sont utilisées.

Pour utiliser une variable dans la fenêtre principale du navigateur à partir d'une fenêtre que vous avez créée, commencez par fournir un "lien" vers l'objet fenêtre parent, en utilisant cette méthode:

newwindow = window.open ("", "NewWindow"); // répétez ceci pour Mac / X Netscape 2.0 newwindow.creator = self;

Ensuite, dans cette nouvelle fenêtre, vous pouvez faire référence à n'importe quelle variable de la fenêtre principale en utilisant la syntaxe:

creator.MyVar;

Pour utiliser une variable dans une fenêtre que vous avez créée, faites-y référence en utilisant le nom d'objet que vous avez fourni lorsque vous avez créé la fenêtre. Par exemple, vous utiliseriez newwindow pour une fenêtre créée avec les éléments suivants:

newwindow = window.open ("", "NewWindow");

Maintenant, référez-vous à cette variable en utilisant la syntaxe:

newwindow.MyVar;

Pour utiliser une variable définie dans le jeu de cadres, c'est-à-dire le document contenant

tag - le désigner comme parent. Voici un exemple:

parent.MyVar;

Pour utiliser une variable dans un autre document cadre, faites-y référence en utilisant le nom de cadre que vous avez fourni dans le

Gordon McComb est auteur, consultant et conférencier. Il a écrit 50 livres et plus d'un millier d'articles de magazines au cours de ses 20 années en tant qu'écrivain professionnel. Plus d'un million d'exemplaires de ses livres sont en cours d'impression. Gordon écrit également une chronique hebdomadaire de journaux syndiqués sur des ordinateurs, atteignant plusieurs millions de lecteurs dans le monde. Le dernier livre de Gordon est The JavaScript Sourcebook, disponible auprès de Wiley Computer Publishing.

En savoir plus sur ce sujet

  • Documentation Netscape pour JavaScript

    //home.netscape.com/eng/mozilla/3.0/handbook/javascript/index.html

  • JavaScript et cookies

    //www.hidaho.com/cookies/cookie.txt

  • Exemple de variables et de cadres JavaScript

    //home.netscape.com/comprod/products/navigator/version_2.0/script/script_info/tutorial/main.htm

  • Exemple étendu d'utilisation de variables JavaScript

    //www.hidaho.com/colorcenter/

Cette histoire, "Tirez parti des variables définies par l'utilisateur dans JavaScript" a été publiée à l'origine par JavaWorld.