JavaScript est un langage de programmation de scripts principalement employé dans les pages web interactives mais aussi pour les serveurs. JavaScript a été créé en 1995 par l'américain Brendan Eich. Il a été standardisé sous le nom d'ECMAScript en juin 1997 par Ecma International dans le standard ECMA-262.
Brendan Eich, né en 1961 à Pittsburgh en Pennsylvanie
Avec les technologies HTML et CSS, JavaScript est parfois considéré comme l'une des technologies cœur du World Wide Web. Le langage JavaScript permet des pages web interactives, et à ce titre est une partie essentielle des applications web. Une grande majorité des sites web l'utilisent, et la majorité des navigateurs web disposent d'un moteur JavaScript dédié pour l'interpréter, on peut donc se passer des serveur pour le faire fonctionner.
<script> </script>
<!DOCTYPE html> <html> <head> <title>TD Javascipt</title> </head> <body> <h1>Mes premiers exemples</h1> <p></p> <script> alert('Hello world! Dans une nouvelle fenêtre'); document.write('Hello world! sur la page'); document.write('<h1>On peut écrire du HTML</h1>'); var nom,prenom; prenom = prompt('Donnez votre prénom'); nom= prompt('Donnez votre nom :'); document.write('<p>Bonjour '+prenom+' '+nom+'</p>'); console.log('On peut aussi écrire dans la console : Bonjour '+prenom+' '+nom); </script> </body> </html>
On obtient le résultat suivant : exemple_javascipt-1.html
//
/*
*/
console.log()
Le JavaScript n'est pas aussi souple que le python pour le débugage. Nous allons apprendre une méthode de base pour débugguer.
Recopiez le code suivant, truffé d'erreurs, sur une page html nommée Debug.html sur NotePad++ et ouvrez-le avec votre navigateur. Corrigez les erreurs en utilisant la console Ctrl+shift+I.
<!DOCTYPE html> <html> <head> <title>TD Javascipt</title> </head> <body> <h1>Débuggage</h1> <p></p> <script> alerte("J'ai fait une erreur"); document.write("Guillemets mal choisis'); document.write('<h1>On peut écrire du HTML</h1>'; var a,b,c,; a = promt('Donnez un mot'); b= prompt{'Donnez un autre mot :'); c=a++b; document.write('<p> La concatenation donne '+c+'</p>'+); </script> <script> document.write('<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit,<br>\ sed do eiusmod tempor incididunt ut labore et dolore magna<br>\ aliqua. Ut enim ad minim veniam, quis nostrud exercitation<br>\ ullamco laboris nisi ut aliquip ex ea commodo consequat.<br>\ Duis aute irure dolor in reprehenderit in voluptate velit<br>\ esse cillum dolore eu fugiat nulla pariatur. Excepteur sint<br>\ occaecat cupidatatnon proident, sunt in culpa qui officia<br>\ deserunt mollit anim id est laborum.</p>'); <script> </body> </html>
Il est possible, d'écrire le code JavaScript dans un fichier externe, portant l'extension .js. Ce fichier est ensuite appelé depuis la page Web au moyen de l'élément <script> et de son attribut src qui contient l'URL du fichier .js.
.js
<script>
src
Exercice 1A sur CAPYTALE - Créer dans le même répertoire, un fichier exemple1.js et un fichier index.html.- Dans le fichier exemple1.js on écrit le script :
Exercice 1A sur CAPYTALE
- Créer dans le même répertoire, un fichier exemple1.js et un fichier index.html.- Dans le fichier exemple1.js on écrit le script :
alert('Hello world!');
- dans le fichier index.html., recopiez le code suivant et testez-le.
<!DOCTYPE html> <html> <head> <title>Mes programmes en Javascript</title> </head> <body> <script src="exemple1.js"></script> </body> </html>
On obtient le résultat suivant : exemple_javascript-2.html
Exercice 1B sur CAPYTALE Pour tous les exercices suivants, vous allez compléter la page index.html, en créant des liens vers les différents exercices JavaScript de ce TD.Vous nommerez chaque fichier exercice sous la forme : "Exercice2.html".Cela va par exemple donner : <!DOCTYPE html> <html> <head> <title>TD javascript</title> </head> <body> <h1>Mes premiers exemples</h1> <script src="exemple1.js"></script> <p></p> <ol> <li>Exercice 2 : <a href="Exercice2.html"> lien sur l'exercice 2</a> </li> <li>Exercice 3 : <a href="Exercice3.html"> lien sur l'exercice 3</a> </li> <li>Exercice 4 : <a href="Exercice4.html"> lien sur l'exercice 4</a> </li> </ol> </body> </html>
Exercice 1B sur CAPYTALE
Pour tous les exercices suivants, vous allez compléter la page index.html, en créant des liens vers les différents exercices JavaScript de ce TD.Vous nommerez chaque fichier exercice sous la forme : "Exercice2.html".Cela va par exemple donner :
<!DOCTYPE html> <html> <head> <title>TD javascript</title> </head> <body> <h1>Mes premiers exemples</h1> <script src="exemple1.js"></script> <p></p> <ol> <li>Exercice 2 : <a href="Exercice2.html"> lien sur l'exercice 2</a> </li> <li>Exercice 3 : <a href="Exercice3.html"> lien sur l'exercice 3</a> </li> <li>Exercice 4 : <a href="Exercice4.html"> lien sur l'exercice 4</a> </li> </ol> </body> </html>
var
const
let
=
prompt()
+
parseInt()
parseFloat()
<script> var a, b, produit,somme; a = prompt('Donnez un nombre'); b= prompt('Donnez un autre nombre :'); a=parseFloat(a) ; // On convertit la chaîne de caractère a en flottant b=parseFloat(b); // On convertit la chaîne de caractère b en flottant produit = a*b; somme=a+b; document.write('Le produit est '+ produit+', et la somme est '+ somme); </script>
On obtient le résultat suivant : Exemple 3 .
Exercice 2 sur basthon pour javaScript Ecrire un script Javascript qui pour un triangle ABC rectangle en A, demande la longueur AB, la longueur AC et affiche une valeur approchée de l'hypoténuse BC. Vous nommerez votre fichier : "Exercice2.html" et devez faire figurer le lien vers ce fichier sur votre page web .
Exercice 2 sur basthon pour javaScript
Ecrire un script Javascript qui pour un triangle ABC rectangle en A, demande la longueur AB, la longueur AC et affiche une valeur approchée de l'hypoténuse BC. Vous nommerez votre fichier : "Exercice2.html" et devez faire figurer le lien vers ce fichier sur votre page web .
Aide :
<script> a = Math.sqrt(2) // a = la racine carrée de 2 (enfin une valeur approchée) </script>
Une condition retourne une valeur booléenne : true ou false.
true
false
if ( /* condition */ ) { // Du code… } else { // Du code… }
Les opérateurs logiques en javaScriptDe nombreux opérateurs existent afin de tester des conditions et ils peuvent être combinés entre eux.
==
>
>=
!=
===
!==
&&
||
!
La condition else if permet de combiner les conditions.
else if
Quand il s'agit de tester une égalité entre une multitude de valeurs, la condition switch est préférable.
switch
Exercice 3 sur basthon pour javaScript Ecrire un script Javascript qui pour un triangle ABC, demande la longueur AB, la longueur AC et la longueur BC et affiche si ce triangle est rectangle (et en quel sommet) ou si il ne l'est pas.Vous nommerez votre fichier : "Exercice3.html" et devez faire figure le lien vers ce fichier sur votre page web.Vous devrez tester votre script avec : ABC tel que AB = 3, AC = 4 et BC = 5 qui drevrait afficher : "ABC est rectangle en A" ; ABC tel que AB = 50, AC = 30 et BC = 40 qui drevrait afficher : "ABC est rectangle en C" ; ABC tel que AB = 6, AC = 10 et BC = 8 qui drevrait afficher : "ABC est rectangle en B" ; ABC tel que AB = 3, AC = 4 et BC = 6 qui drevrait afficher : "ABC n'est pas rectangle".
Exercice 3 sur basthon pour javaScript
Ecrire un script Javascript qui pour un triangle ABC, demande la longueur AB, la longueur AC et la longueur BC et affiche si ce triangle est rectangle (et en quel sommet) ou si il ne l'est pas.Vous nommerez votre fichier : "Exercice3.html" et devez faire figure le lien vers ce fichier sur votre page web.Vous devrez tester votre script avec :
L'incrémentation est importante au sein des boucles.Incrémenter ou décrémenter signifie ajouter ou soustraire une unité à une variable.
var x = 0; x = x+1 ; // on ajoute 1 à x alert(x); // Affiche : « 1 » x++; // on ajoute 1 à x alert(x); // Affiche : « 2 » x--; // on enlève 1 à x alert(number); // Affiche : « 1 »
La boucle for est une boucle utilisée pour répéter une liste d'instructions un certain nombre de fois.
for
<script> var somme=0; for (var N=1 ; N<=5 ; N=N+1 ) // syntaxe (var compteur=valeur départ ; compteur<= valeur fin ; incrément) { somme=somme+N; } alert('somme= ' + somme + ' et N=' + N ); // Affiche « somme = 15 et N = 6 » , la dernière valeur de N est 6 ce qui invalide la condition </script>
Un test avec ce script : exemple 2.
Exercice 4 sur basthon pour javaScript Ecrire un script Javascript qui fait la somme des nombres inférieurs à 100 qui sont des multiples de 7.Commencer par fixer votre nombre à deviner puis essayer de le générer aléatoirement dans un deuxième temps. votre fichier : "Exercice4.html" et devez faire figure le lien vers ce fichier sur votre page web : exercices JavaScript.
Exercice 4 sur basthon pour javaScript
Ecrire un script Javascript qui fait la somme des nombres inférieurs à 100 qui sont des multiples de 7.Commencer par fixer votre nombre à deviner puis essayer de le générer aléatoirement dans un deuxième temps. votre fichier : "Exercice4.html" et devez faire figure le lien vers ce fichier sur votre page web : exercices JavaScript.
La boucle while permet de répéter une liste d'instructions tant que la condition est vérifiée.
while
<script> var N = 0,somme=0; while (N < 5) { N=N+1; // ou N++ somme=somme+N; } alert('somme= ' + somme + ' et N=' + N ); // Affiche « somme = 15 et N = 5 » </script>
Un test avec ce script : exemple 1
Exercice 5 sur basthon pour javaScript Ecrire un script Javascript qui tente de faire deviner un entier de votre choix et affiche, plus petit, ou plus grand jusqu'à la victoire.Commencer par fixer votre nombre à deviner puis essayer de le générer aléatoirement dans un deuxième temps. votre fichier : "Exercice5.html" et devez faire figure le lien vers ce fichier sur votre page web : exercices JavaScript.
Exercice 5 sur basthon pour javaScript
Ecrire un script Javascript qui tente de faire deviner un entier de votre choix et affiche, plus petit, ou plus grand jusqu'à la victoire.Commencer par fixer votre nombre à deviner puis essayer de le générer aléatoirement dans un deuxième temps. votre fichier : "Exercice5.html" et devez faire figure le lien vers ce fichier sur votre page web : exercices JavaScript.
Exemple attendu en vidéo :
<script> var i = 0; // Du code… while (... && i < 20) { // Du code… ... i=i+1; } </script>
alert()
confirm()
function
<script> function DireBonjour(x) { return ('Bonjour ' + x); // L'instruction « return » suivie de la concaténation de 'Bonjour' et de la variable chaîne x } nom=prompt('Quel est votre prénom svp ?'); // On demande le prénom à l'utilisateur alert(DireBonjour(nom)); // Ici on affiche la valeur retournée par la fonction DireBonjour() </script>
Exercice 6 sur basthon pour javaScript Ecrire une fonction Javascript qui teste la présence de la lettre "e" minuscule dans une chaîne de caractères passée en paramètre. Cette fonction doit renvoyer vrai ou faux. Utilisez votre fonction après avoir demandé une chaîne de caractères via la fonction prompt(). Vous nommerez votre fichier : "Exercice6.html" et devez faire figure le lien vers ce fichier sur votre page web : Aide : La fonction .length renvoie la longueur d'une chaine C et la fonction .charAt(position) le caractère à la position précisée dans la chaîne C. Voici un exemple d'utilisation : lien exemple 2.
Exercice 6 sur basthon pour javaScript
Ecrire une fonction Javascript qui teste la présence de la lettre "e" minuscule dans une chaîne de caractères passée en paramètre. Cette fonction doit renvoyer vrai ou faux. Utilisez votre fonction après avoir demandé une chaîne de caractères via la fonction prompt(). Vous nommerez votre fichier : "Exercice6.html" et devez faire figure le lien vers ce fichier sur votre page web :
.length
.charAt(position)
<script> var C='abcdefg'; // C est une chaine de caracteres long=C.length; // long est la longueur de la chaine, ici 7 lettre=C.charAt(0); // lettre est le caractere de la chaine en position 0 (le 1er caractere) alert('Chaine=' + C + ' , longueur = '+ long + ', premier caractere = ' + lettre ); </script>
Voici la correction des exercices 2, 3, 4 et 5 CORRECTIONS DES EXERCICES
Voici la correction des exercices 2, 3, 4 et 5
CORRECTIONS DES EXERCICES
JavaScript permet de réagir à un évènement lié à la page HTM :
Pour réagir à un évènement de ce type, il faut commencer par agir au niveau HTML en ajoutant un attribut à la balise à laquelle on souhaite ajouter une interaction. La syntaxe est toujours la même :
onEvénement = "Fonction"
Les événements permettent de déclencher une fonction selon qu'une action s'est produite ou non. Par exemple, on peut faire apparaître une fenêtre alert() lorsque l'utilisateur survole une zone d'une page Web, clique sur un texte...
Voici une liste de quelques évènements :
select
On trouve de nombreux exemples sur cette page : https://www.w3schools.com/js/js_htmldom_events.asp
onclick
value=
fenetre()
Voici un premier exemple : évènements exemple 1.
<!DOCTYPE html> <html lang="fr"> <meta charset="utf-8"> <html> <head> <title>Les évènements en javaScript : Exemple 1</title> </head> <body> <input type ="button" value="Ouvrir une fenêtre alerte" onclick="fenetre('Bonjour')"/> <script> function fenetre(x) { alert(x + ' Madame ou Monsieur'); } </script> </body>
<body> <h2> Des boutons </h2> <h3>1. Un premier bouton qui affiche la date</h3> <!--La balise id="demo" permet d'identifier un élément de la page--> <p id="demo">C'est ici</p> <!-- --> <!--un premier bouton--> <button type="button" onclick="madate()" > Cliquez sur le bouton 1 </button> <!-- --> <script> function madate() { document.getElementById('demo').innerHTML=Date(); } </script> <h3>2. Un autre bouton qui modifie du contenu HTML</h3> <p> On va modifier le contenu de la balise HTML de paragraphe nommée "ICI" (grâce à l'identifiant id="ICI"). Il change sous vos yeux. </p> <!--La balise id="ICI" permet d'identifier un autre élément de la page--> <p id="ICI" > Ici la balise HTML nommée ICI : On va changer ce texte. </p> <!-- --> <!--un autre bouton--> <button type="button" onclick="change()" > Cliquez sur le bouton 2</button> <script> function change() { document.getElementById('ICI').innerHTML= 'On change' ; } </script> <!-- --> </body>
<body> <p id="montexte">Dans cet autre exemple, la couleur du fond d'écran change quand on clique sur un bouton et la couleur du texte sur un autre bouton<p> <input type ="button" value="Changer de couleur Fond" onclick="ChangementCouleurFond()"/> <input type ="button" value="Changer de couleur Texte" onclick="ChangementCouleurTexte()"/> <script> function ChangementCouleurFond() { const couleur=document.body.style.backgroundColor; // on charge la couleur du fond, const pour déclarer variables (avec let) remplace var alert("Vous m'avez cliqué ! On change de couleur = " + couleur); if (couleur=='ivory') {document.body.style.backgroundColor = 'orange';} else {document.body.style.backgroundColor = 'ivory';} } function ChangementCouleurTexte() { const couleur=document.getElementById('montexte').style.color; // on charge la couleur du exte, const pour déclarer variables (avec let) remplace var alert("Vous m'avez cliqué ! On change de couleur = " + couleur); if (couleur=='red') {document.getElementById('montexte').style.color= 'green';} else {document.getElementById('montexte').style.color = 'red';} } </script> </body>
On va décrire l'exemple 3 qui suit.
onchange
selection()
selecteur=document.getElementById("choix")
selecteur.selectedIndex
<body> <select id="choix" name="lang" onchange="selection()"> <option value=""> Choisir une langue </option> <option value="fr"> Français </option> <option value="zh"> Chinois </option> <option value="it"> Italien </option> </select> <script> function selection() { const selecteur = document.getElementById("choix"); const monChoix=selecteur[selecteur.selectedIndex]; if (monChoix.value!=""){ alert('Vous avez choisi la valeur = ' + monChoix.value + ' , soit le choix = ' + monChoix.text); } } </script> </body>
On présente ici comment récupérer une valeur entrée dans une case à l'aide d'un formulaire après validation d'un bouton.
<body> <!-------------------------------------------------> <h2> Les évènement en HTML/JavaScript : Un petit formulaire</h2> <!-------------------------------------------------> <!-------------------------------------------------> Donnez un entier entre 1 et 4, je vais vous le traduire en anglais : <FORM> <input type="text" name="Valeur_Reponse" id="Id_Reponse" value="" /> <input type="button" value="Valider" onclick="MaFonction();" /> </FORM> <!--------On affichera le réslutat ici-------------> <p id='resultat'>S'écrit en anglais :</p> <!-------------------------------------------------> <script> function MaFonction() { var reponse = document.getElementById("Id_Reponse").value; // Pour récupérer la valeur entrée if (reponse=='1') {document.getElementById('resultat').innerHTML= 'one';} else if (reponse=='2') {document.getElementById('resultat').innerHTML= 'two';} else if (reponse=='3') {document.getElementById('resultat').innerHTML= 'three';} else if (reponse=='4') {document.getElementById('resultat').innerHTML= 'four';} else {document.getElementById('resultat').innerHTML= 'Je ne comprend pas';} } </script> <!-------------------------------------------------> </body>
Lien vers l'exemple 4.3.
<body> <!-------------------------------------------------> <h2> Les évènement en HTML/JavaScript : Boutons Radios</h2> <!-------------------------------------------------> <!-------------------------------------------------> <center> Choisir un mot: <FORM> <input type="radio" name="drone" id="choix1" value="toto" checked /> <label for="choix1" >toto </label> <input type="radio" name="drone" id="choix2" value="tata" /> <label for="choix2" >tata </label> <input type="radio" name="drone" id="choix3" value="titi" /> <label for="choix3" >titi </label> </FORM> <input type="button" value="Valider" onclick="MaFonction()" /> <!--------On affichera le réslutat ici-------------> <p id='resultat'>Vous avez choisi</p> <!-------------------------------------------------> </center> <script> function MaFonction() { var radios = document.getElementsByName('drone'); var valeur; for(var i = 0; i < radios.length; i++){ if(radios[i].checked){ valeur = radios[i].value; document.getElementById('resultat').innerHTML="Vous avez choisi "+valeur; } } } </script> <!-------------------------------------------------> </body>
Lien vers l'exemple 4.4.
Exercice 7 :Exercices Supplémentaires Exercice 1 : JavaScript pur : Entrainement JavaScript pur / correction Exercice 2 : JavaScript et évènements sur JavaScipt et evenements / Correction .
Exercice 7 :Exercices Supplémentaires
Entrainement JavaScript pur / correction
JavaScipt et evenements / Correction .
Exercice 8 : Un devoir type Exercice 1 : JavaScript pur : Entrainement JavaScript pur / correction Exercice 2 : JavaScript et évènements Entrainement Javascript et évènements / correction
Exercice 8 : Un devoir type
Entrainement Javascript et évènements / correction
Exercice 9.1 : Un exemple d'évènement chez un collégue. Événements en JavaScript: Exercice 9.1 / Correction JavaScript
Exercice 9.1 : Un exemple d'évènement chez un collégue.
Événements en JavaScript: Exercice 9.1 / Correction JavaScript
Exercice 9.2 : Un exemple d'évènement chez un collégue. Cela fait tout réviser : Html, CSS et JavaScript . Événements en JavaScript: Exercice 9.2
Exercice 9.2 : Un exemple d'évènement chez un collégue. Cela fait tout réviser : Html, CSS et JavaScript .
Événements en JavaScript: Exercice 9.2
Exercice 10 à rajouter au projet HTML Concevoir une page avec un Quiz avec au moins 3 questions qui portent sur votre Site Web : 1 questions Vrai/Faux ou QCm avec boutons radios ; 1 question avec une liste déroulante (QCM) ; 1 question ouverte avec un texte ou une valeur à donner. Attention il faut indiquer dans la question le format d'écriture de la donnée. Contraintes : Vous devez aussi afficher le score final. Vous devez personnaliser votre page (nom, thème, couleur, page CSS ...) Vous nommerez votre fichier : "QCM_JavaScript.html". Vous nous donnerez le lien vers le QCM sur la micropage Web sur Capytale.
Exercice 10 à rajouter au projet HTML
Concevoir une page avec un Quiz avec au moins 3 questions qui portent sur votre Site Web :
Voici quelques cours que vous pouvez suivre en compléments :