JavaScript Éléments du langage Ce cours s’est inspiré librement du cours de CHENU Guy ©A. Belaïd 1 Introduction JavaScript – Langage de script incorporé dans le HTML – Historiquement, premier langage de script pour le Web – Apporte des améliorations au HTML • HTML permet d'écrire • JavaScript permet de programmer, c'est-à-dire de gérer l'information Qualités : – Disponible sur les navigateurs actuels et gratuit Défauts : – Interprété et donc très lent, pas de débogueur © A. Belaïd 2 Introduction A quoi ressemble un script ? – C’est une portion de code qui vient s'insérer dans une page HTML – Le code du script n'est toutefois pas visible dans la fenêtre du navigateur car il est compris entre des balises (ou tags) spécifiques qui signalent au navigateur qu'il s'agit d'un script écrit en langage JavaScript – Balises annonçant le code Javascript : <SCRIPT language="Javascript"> Placez ici le code de votre script </SCRIPT> © A. Belaïd 3 Introduction Code interprété ou compilé ? – Dès que le navigateur rencontre la balise <script> il passe la main à l'interprète du langage appelé – Votre navigateur interprétera votre script, puis l'exécutera Que mettre dans le script ? – Des variables et instructions, organisées selon votre algorithme, c'est-à-dire selon le résultat que vous souhaitez obtenir Où placer les scripts ? – Au début, dans le conteneur <body>.</body> • Dès que vous serez capables de comprendre les fonctions, nous les placerons le plus souvent dans le conteneur <head>.
Belaïd 4 Introduction Masquage du script pour les anciens navigateurs – Attention : • Comme Javascript a été inventé après l’arrivée des navigateurs, ceux-ci peuvent ne pas le reconnaître • On place alors le code dans le body en commentaire <SCRIPT language="Javascript"> <!-- Placez ici le code de votre script //--> </SCRIPT> © A. Belaïd 5 Éléments du langage Les commentaires – Pour mettre en commentaires toute une ligne, on utilise le double slash: // Tous les caractères derrière le // sont ignorés – Pour mettre en commentaire une partie du texte (éventuellement sur plusieurs lignes) on utilise le /* et le */: /* Toutes les lignes comprises entre ces repères sont ignorées par l'interpréteur de code */ © A. Belaïd 6 Lire/Écrire prompt() – ouvre une boîte de dialogue avec une zone de saisie et 2 bouton : OK et Annuler, rend l’information lue alert () – permet d’écrire un message dans une fenêtre – Exemple : lire-ecrire.html <html> <head><title>Programme In1</title></head> <body> <script language="JavaScript"> <!-- annee=prompt('En quelle année sommes-nous ? ', 2000); alert('Vous avez répondu : ' + annee); //--> </script> </body> </html> © A. Belaïd 7 Lire/Ecrire Résultat © A.
Belaïd 8 Lire/Écrire document.write : – Permet d’écrire directement dans la fenêtre HTML – Exemple : lire-ecrire2.html <html> <head> <title>Programme Out1</title> </head> <body> <script language="JavaScript"> <!-- document.write('Vous avez le bonjour de JavaScript <br>'); //--> </script> </body> </html> © A. Belaïd 9 Lire/Écrire document.write pour écrire le contenu de variable Exemple : lire-ecrire-var.html <html> <head><title>Programme Out2</title></head> <body> <script language="JavaScript"> <!-- var jour = 21; var mois = 'juin'; document.write(jour + ' ' + mois + ' : solstice'); //--> </script> </body> </html> © A. Belaïd 10 Lire/Écrire Confirm () – Cette méthode ouvre une boîte de dialogue avec 2 boutons : OK et Annuler. Elle permet : • d'envoyer une information, de recevoir un booléen – Exemple : lire-ecrire-confirm.html <script language="JavaScript"> if (confirm('Je vais dire sur quel bouton vous avez appuyé : ')) {alert(' Sur OK \n Continuez avec :') } else {alert(' Sur Annuler \n Sortez avec Ok !') }; </script> © A.
Belaïd 11 Lire/Écrire Écriture dans une fenêtre : open() + document.write – Permet d’ouvrir une fenêtre et d’écrire dedans – Exemple : lire-ecrire-open.html <script> fille=open('', '', 'height=50, width=300, status=yes'); fille. Belaïd 12 Variables Déclaration <script language="JavaScript"> var date; // Déclaration sans affectation var compteur=0; // Déclaration avec affectation toto='coucou'; // Déclaration implicite par affectation var prem, second; // variables séparées par des virgules </script> © A. Belaïd 13 Types Déclaration <script language="JavaScript"> monNombre = new Number(); // Déclaration typée sans affectation e = new Number(2.71828); // Déclaration typée avec affectation var maChaine = new String(); //Déclaration de chaîne var toto = new Boolean(true); //Déclaration de booléen </script> © A. Belaïd 14 Types Visibilité des variables : – Bien que de même nom, les variables "x" sont indépendantes – Exemple : variable-visibilite.html <script language="JavaScript"> var x = new String('abc'); function commencer() { var x = new Number(123); x++; alert(x); }; function suivre() { var x = new Boolean(true); alert(x); }; x='ABC'; commencer(); suivre(); </script> © A.
Belaïd 15 Tableau Array – Le type des éléments : nombres, chaînes, booléens,. – La dimension 1, 2, ou 3,. – Les indices : souvent des nombres entiers – Exemple : tableau.html <script language=JavaScript> // Tableau de chaînes, de dimension 1, indicé de 0 à 6 : Jour=new Array(7); Jour[0]='Dimanche' ; Jour[1]='Lundi' ; Jour[2]='Mardi' ; //. Jour[6]='Samedi' ; // En énumérant les éléments : jour=new Array('dimanche','lundi','mardi',.
,'vendredi','samedi'); document.write(Jour[1], ' ' , Jour[0]); //affiche : Lundi dimanche </script> © A. Belaïd 16 Tableau Array – Autre exemple : tableau2.html <script language="JavaScript"> temp=new Array(30); function relever() { for (i=1;i<=30;i++); // i commence à 1 { temp[i-1]=17+Math.random()); }; // i-1=0, donne le premier indice }; function moyenner() { som=0; for (i=1;i<=30;i++) { som+=temp[i-1]; }; return Math. Belaïd 17 Autre exemple (suite) – Si on obtient NaN • Cela veut dire que la valeur n’est pas numérique – Dans ce cas, utiliser : • parseInt(moyenner()) – Exemple : affich-entier.html <html> <head> <title>Programme Out2</title> </head> <body> <script language="JavaScript"> <!– function calcul() { var x=20; return x; }; alert('la valeur de x ='+ parseInt(calcul())); --> </script> </body> </html> Opérateurs Arithmétiques © A. Belaïd 19 Opérateurs De comparaison – La comparaison se fait entre deux objets de même type • renvoie un booléen : true ou false © A.
Belaïd 20 Opérateurs Logique – Opèrent sur des booléens et renvoient un booléen © A. Belaïd 21 Opérateurs d’affectation © A. Belaïd 22 Conditionnelles Syntaxe if (condition booléenne) {Instructions à exécuter si "oui"} else {Instructions à exécuter si "non"}; © A. Belaïd 23 Conditionnelles Exemple : conditionnelle.html <script language="JavaScript"> a = prompt('a=',2); b = prompt('b=',6); if (a==0) {if (b==0) {alert(a+'x='+b+ '\n' +'tout nombre est solution')} else {alert(a+'x='+b+ '\n'+'0x est différent de '+b + '\n'+'Pas de solution') } } else {alert(a+'x='+b+ '\n' +'Une seule solution \n'+'x='+b/a) } </script> © A.
Belaïd 24 Choix Choix multiple switch(x) { case 1 : instructions 1; break; case 2 : instructions 2; break;. case n : instructions 3; break; default : instructions 4; break; }; © A. Belaïd 25 Choix Exemple : choix.html function preferer(k) { switch(k) { case 1 : alert(1); break; case 2 : alert(2); break; }; }; preferer(2); © A. Belaïd 26 Itération For for (valeur de départ ; contrôle pour sortie ; progression ) { Instructions à itérer } Exemple for (i=1;i<=5;i++) { Instructions à répéter } © A.
Belaïd 27 Itération Table de multiplication – Exemple : iteration.html <html> <head><title>Programme iterer1</title></head> <body> <script language="JavaScript"> <!-- var n=0; n=prompt('Quelle table ? ',7); for (i=1;i<10;i++) { document.write(i+' x '+n+' = '+n*i+'<br>'); }; //--> </script> </body> </html> © A. Belaïd 28 Itération sous contrôle while – Syntaxe : while(condition) { suite d’instructions; } – Exemple : i=0; while(i<=10) { suite d’instructions; i++; } © A. Belaïd 29 Fonctions – Syntaxe function maFonction(x, toto) {. return valeur du résultat; } – Exemple <script language="JavaScript"> function VolCylindre(r,h) { pi=3.14159; return pi*r*r*h; } document.
Belaïd 30 Fonctions – Autre exemple <script language="JavaScript"> var volume; function VolCylindre(r,h) { pi=3.14159; volume = pi*r*r*h; } VolCylindre(1,2); document. Belaïd 31 Fonctions prédéfinies Dates – Javascript peut gérer le temps : – Aujourd'hui : mardi 16 août 2005, l'horloge de votre ordinateur donne 13h 24min – Il vous propose plusieurs fonctions prédéfinies © A. Belaïd 32 Fonctions prédéfinies Exemple : date.html <html> <head> <title>Aujourd'hui</title> </head> <body> Date de votre machine : <script language="JavaScript"> var aujourd_hui = new Date(); document.write(aujourd_hui.write(aujourd_hui.write(aujourd_hui.getFullYear()); </script> </body> </html> © A. Belaïd 33 Fonctions prédéfinies Mathématiques : © A.
Belaïd 34 Fonctions prédéfinies mathématiques : utilisation © A. Belaïd 35 Association avec un formulaire Utilisation dans un formulaire – Schéma d’utilisation • Body : Contient la définition du formulaire Il fait appel aux variables et fonctions définies dans le head • Head : Contient les fonctions © A. Belaïd 36 Association avec un formulaire Lire/Écrire : lire-ecrire-form0.html Exemple 1 : appel à une fonction de lecture en cliquant sur un bouton du formulaire <html> <head> <title>Programme In2</title> <script language="JavaScript"> function lireAnnee() { annee=prompt('En quelle année sommes-nous ? ', 2000); alert('Vous avez répondu : ' + annee) } </script> </head> <body> <form> <input type="button" value="En quelle annee ? " onClick="lireAnnee()"> </form> </body> </html> © A. Belaïd 37 Association avec un formulaire Lire/Écrire : lire-ecrire-form0.
Belaïd 38 Association avec un formulaire Lire un nombre et écrire son double – Exemple 2 : Lire-ecrire-form.html • Saisie du nombre : <input type="text" name="nbre" size="3"> • Traitement 2*Number(document. Belaïd 39 Association avec un formulaire lire-ecrire-form.html – Code source complet : ici le code js est dans le formulaire <html> <head><title>Programme In3</title></head> <body> <form name="lire"> Entrez un nombre : <input type="text" name="nbre" size="3"> <input type="button" name="double" value="go" onClick="JavaScript:document.value=2*Num ber(document.value);"> voici son double : <input type="text" name="aff" size="8"> </form> </body> </html> © A. Belaïd 40 Association avec un formulaire Exercice – Mettez le code JavaScript dans une fonction que vous placez dans le Head Solution – lire-ecrire-form-essai. Belaïd 41 Association avec un formulaire Lire/Écrire Questionnaire à choix multiple – Écrire un formulaire qui permet de réaliser un choix et d’afficher ce choix – Exemple : lire-ecrire-form2.html <head> <script language="JavaScript"> var vote=''; function enregistrer(x){vote=x} function depouiller() {document.value=vote}</script> </head> <body> <form name="election"> Vous êtes pour l'informatique ? <input type="radio" name="vote" onClick="enregistrer('oui')">oui <input type="radio" name="vote" onClick="enregistrer('non')">non <input type="radio" name="vote" onClick="enregistrer('abstention')"> abstention <input type="button" name="reponse" value="Résultat" onClick="depouiller()"> <input type="text" name="resultat" value=""> </form> © A.
Belaïd 42 Association avec un formulaire Conditionnelle – On cherche à contrôler la lecture des informations de type : nom, prénom et âge à l’enregistrement du formulaire de saisie • Le programme doit redemander l’entrée d’une information si elle est vide – Le bouton Annuler servira à effacer les informations rentrées – Exemple : conditionnelle-form. Belaïd 43 Association avec un formulaire Conditionnelle Solution <body> <form name="fiche"> Nom : <input type="text" name="nom" value="" size="24"> Prénom : <input type="text" name="prenom" value="" size="24"> Age : <input type="text" name="age" value="" size="24"> <input type="button" value="Enregister" onClick="verifier()"> <input type="reset" value="Annuler"> </form> </body> © A. Belaïd 44 Association avec un formulaire Conditionnelle <head><title> Si. </title></head> <script language="JavaScript"> function verifier() { if (document.value=="") { alert('Saisissez le nom ! '); } else { if (document.value=="") { alert('Saisissez le prénom ! '); } else { if (document.value=="") { alert('Saisissez l\'âge ! '); } else { alert('Vos trois champs ont été affectés'); };};};}; </script> © A.
Belaïd </head> 45 Association avec un formulaire Exercice – Vérifier la validité des noms par rapport à une liste de noms rangés dans un tableau Solution – verifier-saisie. Belaïd 46 Association avec un formulaire choix-form.html Autre exemple de lecture par formulaire HTML – Choisir parmi une liste et afficher le choix <script language="JavaScript"> function Preferer(x) { switch(x) { case 1 : alert('Votre choix : '+'classique');break; case 2 : alert('Votre choix : '+'jazz'); break; case 3 : alert('Votre choix : '+'rock'); break; case 4 : alert('Votre choix : '+'pop'); break; }; }; </script></head> <body> <form name="musique"> <select name="choix" onChange="Preferer(document.selectedIndex)"> <option value = "choix">choisissez : <option value = "classique">classique <option value = "jazz">jazz <option value = "rock">rock <option value = "pop ">pop </select> © A. Belaïd </form> 47 Association avec un formulaire choix-form.