|
Par
Darkodam
Mise à jour : 27/01/2010
290 visites depuis 7 jours,
classé 346/786
|
.
.
).| Nom de la variable | Valeur |
|---|---|
| positionSourisX | 238 |
| nombreDeColonnes | 5 |
| message | "Bonjour à toi" |
| Temps | Valeur de i | Valeur de la variable "cloturée" |
|---|---|---|
| t0 | 1 | - |
| t1 | 2 | 2 |
| t2 | 3 | 2 |
| t3 | 4 | 2 |
, il va falloir comprendre quelques petites choses à propos des fonctions et des variables.1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | // Une fonction peut être définie ainsi : function UneFonction() { alert("Je suis une fonction"); } UneFonction(); // affiche "Je suis une fonction" // mais on peut aussi la définir ainsi : // (On affecte en fait une fonction anonyme à une variable) var UneAutreFonction = function() { alert("Je suis une autre fonction"); }; UneAutreFonction(); // affiche "Je suis une autre fonction" // Une fonction étant une variable, on peut lui réaffecter une valeur : UneFonction = "Je ne suis plus une fonction :'("; alert(UneFonction); // affiche "Je ne suis plus une fonction :'(" // On peut passer une fonction comme argument à une autre fonction (comme n'importe quelle autre variable) function UtiliserFonction(fct) { fct(); // ici, on exécute la fonction passée en paramètre } UtiliserFonction(UneAutreFonction); // affiche "Je suis une autre fonction" |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | var a = 10; // variable globale, cette variable sera accessible dans toutes les fonctions // créées dans le script. function MontrerGlobale() { // Comme aucune variable locale nommée a n'a été déclarée ici, c'est la // variable globale qui sera affichée. alert(a); } function ModifierGlobale() { // même raisonnement que pour "MontrerGlobale" : On modifie la variable globale a = a + 2; } MontrerGlobale(); // affiche "10" ModifierGlobale(); // "a" vaut 12 MontrerGlobale(); // affiche "12" a = 5; MontrerGlobale(); // affiche "5" |
1 2 3 4 5 6 7 8 9 | function CreerVariable() { var b = 10; // on crée une variable locale, uniquement accessible à l'intérieur de // cette fonction } CreerVariable(); alert(b); // Déclenche une erreur. La variable b n'ayant pas une portée globale, elle n'est // pas accessible ici. |
1 2 3 4 5 6 7 8 9 10 11 | function CreerVariable() { var b = 10; // on crée une variable locale, uniquement accessible à l'intérieur de // cette fonction } function MontrerVariable() { alert(b); } MontrerVariable(); // Déclenche une erreur. La variable b n'ayant pas une portée globale, // elle n'est pas accessible dans cette fonction. |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | var c = "Je suis une variable globale"; function MaFonction() { var c = "Je suis une variable locale"; // On vient de créer une variable locale nommée "c". // Tant que l'on restera dans la fonction, ce sera // cette variable qui sera prise en compte. // La variable globale "c" n'est donc plus disponible // dans cette fonction. alert(c); } // Une fois sortie de la fonction "MaFonction", la variable // globale "c" reprend ses droits. MaFonction(); // affiche "Je suis une variable locale" alert(c); // affiche "Je suis une variable globale" |
1 2 3 4 5 6 7 8 9 10 11 12 | function MaFonction( arg1 ) { alert( arg1 ); // affiche le contenu de la variable passée en argument // on change la valeur de l'argument arg1 = "je suis la copie de la variable passée en argument"; alert( arg1 ); // affiche "je suis la copie de la variable passée en argument" } var maVariable = "Je suis une variable"; MaFonction( maVariable ); // affiche "Je suis une variable" puis "je suis la copie de la variable passée en argument" alert( maVariable ); // maVariable n'est pas modifiée, affiche "Je suis une variable" |
1 2 3 4 5 6 7 8 9 10 11 12 13 | var MonObjet = { a : "je suis un membre de l'objet" }; function ModifierObjet(arg1) { arg1.a = "J'ai été modifié =o"; } alert(MonObjet.a); // affiche "je suis un membre de l'objet" ModifierObjet(MonObjet); alert(MonObjet.a); // affiche "J'ai été modifié =o" |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | ( function() { /* Contenu de la fonction */ } ); // ici une fonction anonyme est créée, // mais sans l'exécuter ( function() { var a = "Je suis une variable dans une fonction anonyme"; alert(a); } ) (); // en ajoutant une paire de parenthèses à l'ensemble, on exécute la fonction // On profite de tous les avantages des fonctions, on peut donc passer des arguments var b = 10; ( function(arg1) { arg1 += 2; alert("arg1 vaut : " + arg1); // affiche "arg1 vaut : 12" } ) (b); alert("b vaut : " + b); // affiche "b vaut : 10" |
.1 2 3 4 5 6 7 8 9 10 11 | function MaFonction(nombre) { function Ajouter(valeur) { // La variable "nombre" est accessible dans cette fonction, car "nombre" // a été définie en dehors de la fonction Ajouter return nombre + valeur; } // Comme on l'a vu, Ajouter est une variable, j'ai donc le droit de la rendre en // tant que résultat de la fonction return Ajouter; } |
1 2 3 4 5 | var a = MaFonction(10); // La variable "a" contient désormais la fonction "Ajouter". "a" est désormais une // fonction dans laquelle la variable "nombre" existe encore. alert( a(2) ); // Affiche "12"; |
1 2 3 4 5 6 7 8 9 10 | var a = ["elem1", "elem2", "elem3", "elem4", "elem5"]; for(var i = 0; i < 3; i++) { window.setTimeout( /* Argument 1 : Fonction à lancer après le délai */ function() { alert(a[i]) }, /* Argument 2 : Délai en millisecondes avant de lancer la fonction */ 1000 ); } |
!1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | var a = ["elem1", "elem2", "elem3", "elem4", "elem5"]; for(var i = 0; i < 3; i++) { window.setTimeout( /* Argument 1 : Fonction à lancer après le délai */ ( function(arg1) { // "arg1" prendra la valeur de "i" lors d'un tour de boucle. // Cette valeur devient indépendante de "i" et n'est plus // soumise au fonctionnement de la boucle // On retourne la fonction à exécuter à la fin du délai défini dans // "setTimeout" return function() { // Lorsque cette fonction s'exécutera, "arg1" contiendra // toujours la valeur qui lui a été transmise et n'aura pas // été modifié alert( a[arg1] ); }; } ) ( i ), // on passe en argument le compteur de la boucle /* Argument 2 : Délai en milisecondes avant de lancer la fonction */ 1000 ); } |
|
|
Dynamisez vos sites web avec Javascript ! |
|
|
La tour de contrôle |
|
|
Les coordonnées de la souris |
|
|
Les Bookmarklets ou comment modifier la page d'un site depuis la barre d'adresse |