Testeur de code    

Exo 11g

<script type="text/javascript">
var i;
function f_tester() {
    var j; // On ne voit pas cette variable locale j hors des accolades
    alert(j);
    j = i;
    alert(j);
}
f_tester();
i="hello";
f_tester();
</script>

La fonction f_tester() est appelée deux fois ;
à chaque appel, affichage de deux messages, donc affichage de 4 messages.

Avant le premier appel,
une variable globale i est déclarée, mais pas affectée.

Au premier appel :
* on déclare la variable locale j sans lui affecter de valeur ;
* on demande d'afficher la valeur de cette variable locale j (pas de valeur affectée donc... "undefined") ;
* on affecte à la variable locale j, la valeur de la variable globale i (déclarée, mais non affectée) ;
* on demande une nouvelle fois d'afficher la valeur de cette variable locale j (pas de valeur affectée donc... "undefined") ;

Entre les deux appels,
on affecte la variable globale i de la valeur "bonjour CUY".

Au deuxième appel :
* on déclare à nouveau la variable locale j ;
* on demande d'afficher la valeur de cette variable locale j (toujours pas de valeur affectée donc... "undefined") ;
* on affecte à la variable locale j, la valeur de la variable globale i (qui maintenant a la valeur "bonjour CUY") ;
* on demande une nouvelle fois d'afficher la valeur de cette variable locale j (qui maintenant a la valeur "bonjour CUY") ;

Rien n'interdit d'utiliser le même identifiant pour des variables locales situées dans deux fonctions différentes !
Évitez cependant d'utiliser le même nom pour une variable locale et une variable globale, ceci n'est que source de confusion...

Les débutants ont souvent tendance à oublier la possibilité d'utiliser des variables locales ;
on pourrait en effet n'écrire que des variables globales. Mais, c'est une très mauvaise habitude...

Efforcez vous d'utiliser ces variables locales !
C'est important, pour éviter un surplus de variables globales, pour rendre le code plus lisible, pour éviter des conflits de noms, pour des tas de bonnes raisons...

Une variable doit être locale si elle n'est utile que dans le corps de la fonction, avec son utilisation dans le corps de la fonction.

On ne créera donc des variables globales que pour des résultats relativement permanents, dont la valeur doit être conservée au fil de l'exécution du script.

(Title should appear here)
Éditez le code ci-dessus puis clickez sur le bouton (ou pressez 'alt+x') pour voir le resultat.

status: loading...