Présentaion
Les notions de bases
Fonctions & porté
Les événements
Les interactions avec le
DOM
Modélisation des objets
INTRODUCTION
Préentation
Préentation
Présntation
Préentation
• Basé sur les évenements:
• Onload • onabort
• Onfocus • onerror
• Onclick • onmouseover
• Ondbclick • ….
Les librairies
• Il y a plusieurs librairie
– jQuery
– Ext JS
– Prototype
– Dojo
– Etc…
Questions ?
Notions de base
Hello world
<!DOCTYPE html>
<html>
<head>
<title>Hello World!</title>
</head>
<body>
<script type="text/javascript">
alert('Hello world!');
</script>
</body>
</html>
Notions de base
Implémenation du JavaScript
Deux emplacements pour declarer le JavaScript
Directement dans le code html entre les balises <script>
<script type="text/javascript">
var name = "Grima";
</script>
<script type="text/javascript"
src="script.js"></script>
Notions de base
Syntaxe de base
Une instruction se termine par un point virgule (;)
<script type="text/javascript">
Instruction_1;
Instruction_2; Instruction_3;
</script>
Syntaxe de base
Les commentaires monolignes sont créées par //, et multiligne par /* et
*/
<script type="text/javascript">
// Single line comment
/* Multi
line
comment */
</script>
Notions de base
Syntaxe de base
Afficher du texte dans le consol: console.log()
<script type="text/javascript">
</script>
Notions de base
Syntaxe de base
Afficher du texte sur une page web: document.write()
<script type="text/javascript">
</script>
Notions de base
Syntaxe de base
Afficher du texte via une boite de dialogue: window.alert(message)
Syntaxe de base
Interaction avec l’utilisateur : window.alert(message)
Variables
Respect de la casse
myvariable ≠ myVariable
On assigne une valeur à une variable en tapant son nom à gauche du signe
d’égalité (=), et la valeur à droite
Notions de base
Variables
Déclaration explicite avec le mot clé var
<script type="text/javascript">
var name = « Ferdinand";
</script>
Variables
Déclaration implicite sans le mot clé var
<script type="text/javascript">
name = "Doug";
</script>
Notions de base
Variables
Concaténation: combine des chaine de caratères avec d’autres types
Opérateur +
Variables
Mauvais “typage”
Le type d’une variable défini le formatage de son contenu
Obtention du type d’une variable: typeof
document.write(typeof myVar1); // Va
afficher"string"
document.write(typeof myVar2); // Va afficher
"number"
Notions de base
Les opérateurs
Les opérateurs mathématiues
Notions de base
Les opérateurs
Les opérateurs de comparison (salary = 2800)
Notions de base
Les opérateurs
Les opérateurs logiques
Symbol Example Explanation
&& age == 18 && salary > 2800 AND
|| age == 18 || salary > 2800 OR
^ age == 18 ^ salary > 2800 Exclusive OR
Notions de base
Les opérateurs
Operation divers
Notions de base
Les conditions
Test conditionnel : if … else if … else
if( expression1 ) {
// If "expression1" is evaluated to true, then this
// block is executed
} else if ( expression2 ) {
// Otherwise, if "expression2" is evaluated to true,
// this block is executed
} else {
// Otherwise, this code block is executed
}
Notions de base
Les conditions
switch
switch(myVar) {
case "case1":
// if(myVar === "case1")
break;
case "case2":
// if(myVar === "case2")
break;
default:
// else - Default code to execute
break;
}
Notions de base
Les boucles
Boucles conditionnelles: while
// It loops 40 times
var myVariable = 40;
while( myVariable > 0 ) {
myVariable = myVariable – 1;
}
Notions de base
Les boucles
Boucle conditionnelle: do …. while
Même que while
Premier test après la première execution du block de la boocle
var myVariable = 0;
// Loop will execute once even if the test returns
false
do {
myVariable -= 1;
} while (myVariable > 0);
Notions de base
Les boucles
Boucle iterative: for
À specifier:
L’état initial
Condition d’iteration
Instruction d’itération
var a;
for (a = 0; a < 100; a += 1){
// Loop will display Blabla 100
times.
document.write("<p>Blabla</p>");
}
Notions de base
Les tableaux
Contient des données en sequences
Plusieurs manière pour créer un tableau
En creant un objet de type array
En utilisant les crochet [] (conseillé)
Supporte tous les types de données de JavaScripte
Notions de base
Parcourir un tableau
Avec la boucle for
Notions de base
Execice (1/3)
Vous allez écrire votre premier programme en javascript
Jeux de devinette !
Initialisez une variable nommée numberToFind avec un nombre au
hazard entre 0 et 100
Initialisez une autre variable nommée remainingAttempts à une valeur
entière de 7
Notions de base
Execice (2/3)
Tant que l’utilisateur n’a pas trouvé la valeur de numberToFind et a
toujours des possibilités d’essaie,demandez lui de choisir un nombre
Si le nombre choisi correspond à la valeur de la variable
numberToFind
Afficher un message à l’utilisateur pour lui dire qu’il à
gagné
Si le nombre ne correspond pas à la valeur de la variable
numberToFind
afficher un message pour informer l’utilisateur si le nombre à
trouver est plus petit ou non
Notions de base
Execice (3/3)
Allons à la découverte du langage JavaScript
Les fonctions
Un bloc d’instruction
• Déclaré avec le mot clé function
• Peut prendre des valeurs ou références appelés arguments
Les fonctions
Appelé par son nom suivit de parenthèse:
functionname();
functionName(arguments);
Peut retourner une valeur avec le mot clé return
La valeur retournée peut être utilisée par une autre fonnction
Les fonctions et leur portée
Les fonctions
Exemple
function howOld(year){
var currentYear = new Date().getFullYear();
return currentYear - year;
}
function writeGlobal(){
console.log(myVar);
}
function setGlobal_writeLocal(newValue){
myVar = newValue;
var myVar = "I am local\n";
console.log(myVar);
}
writeGlobal();
setGlobal_writeLocal("I am still global\n");
writeGlobal();
Fonctionnement
Une fonction peut être assigné à une variable
Peut être passé comme argument à une fonction
Peut être une valeur de retour d’une fonction
Les fonctions et leur portée
Passer une fonction comme paramètre-
Exemple
Exécuter une action une fois par élément du tableau
L'élément courant est représenté par le param de la fonction anonyme
dans l’exemple suivant
Fn expression VS Fn declaration
Exemple
function declaration() {
console.log("I'm a function declaration");
}
var expression = function() {
console.log("I'm a function expression");
}
declaration();
expression();
Les fonctions et leur portée
Exemple
declaration();
expression();
function declaration() {
console.log("I'm a function declaration");
}
var expression = function() {
console.log("I'm a function expression");
}
Questions
A la découverte du language JavaScript
INTRODUCTION
Document Object Model
Le standard W3C:
L’ensemble des standards du html
Les outils standards pour accéder et manipuler les
documents html
Indépendant du langage de la plateforme
DOM
INTRODUCTION
L’arborescence simplifiée
DOM
document.querySelector("#myElement");
document.querySelectorAll("p");
DOM
document.querySelectorAll("p");
DOM
element.childNodes;
element.parentNode;
DOM
element.getAttribute("attribute");
element.setAttribute("attribute", "value");
DOM
element.firstChild.nodeValue;
element.firstChild.nodeValue = "text";
DOM
Autres manipulations….
Créer un élément
var e = document.createElement(‘p’);
parent.appendChild(e);
DOM
Autres manipulations….
Modifier un élément
e.style.textAlign = ‘center’;
Supprimer un élément
var e = document.querySelector("#deleteMe");
e.parentNode.removeChild(e);
DOM
Autres manipulations….
Contender
new_element
element
<div id="content">
Accès aux éléments
<h1>Hello world!</h1>
<p>
It's my <strong>awesome</strong> page!
</p>
</div>
<script type="text/javascript">
var divEl = document.querySelector("#content");
var strongEl = divEl.childNodes[1].childNodes[1];
// Somehow easier...
var sEl = divEl.querySelector("#content strong");
</script>
DOM
Accès en cascade
<p></p>
var p = document.querySelector("p");
p.textContent = "Hello World";
<p>Hello World</p>
DOM
var p = document.querySelector("p");
p.innerHTML = “<strong>Hello World </strong>";
var p = document.querySelector("p");
p.classList.add("myClass");
p.classList.remove("otherClass");
<p class="myClass"></p>
DOM
var p = document.querySelector("p");
p.style.color = "red";
p.style.fontFamily = "Calibri";
p.style.border = "1px blue solid";
p.style.textTransform = "uppercase";
p.style.width = "200px";
p.style.fontWeight = "bold";
Questions ?
DOM
Exercice (1/3)
Partie 1:
Utilisez prompt pour demander une valeur à l’utilisateur
Créez des paragraphes et ajoutez-les à la page au lieu
d'afficher des alertes
DOM
Exercice (2/3)
Exercice (3/3)
Exemple du resultat
Découvrir le langage JavaScript
Les événements
Les événements
Présentation
Les évènements sont des actions qui se produisent et auxquelles on va
pouvoir répondre en exécutant un code. Par exemple, on va pouvoir
afficher ou cacher du texte suite à un clic d’un utilisateur sur un élément,
on change la taille d’un texte lors du passage de la souris d’un utilisateur
sur un élément.
Les évènements et leur prise en charge sont l’un des mécanismes
principaux du JavaScript qui vont nous permettre d’ajouter un vrai
dynamisme à nos pages Web.
Les événements
Présentation
Présentation et première définition des évènements
En JavaScript, un évènement est une action qui se produit et qui possède
deux caractéristiques essentielles :
C’est une action qu’on peut « écouter », c’est-à-dire une action
qu’on peut détecter car le système va nous informer qu’elle se
produit ;
C’est une action à laquelle on peut « répondre », c’est-à-dire
qu’on va pouvoir attacher un code à cette action qui va
s’exécuter dès qu’elle va se produire.
Les événements
Présentation
Définir des gestionnaires d’évènements
Pour écouter et répondre à un évènement, nous allons définir ce qu’on
appelle des gestionnaires d’évènements.
Un gestionnaire d’évènements est toujours divisé en deux parties :
une partie qui va servir à écouter le déclenchement de l’évènement,
et une partie gestionnaire en soi qui va être le code à exécuter dès
que l’évènement se produit.
Les événements
Présentation
Aujourd’hui, en JavaScript, il existe trois grandes façons d’implémenter un
gestionnaire d’évènements :
On peut utiliser des attributs HTML de type évènement (non
recommandé) ;
On peut utiliser des propriétés JavaScript liées aux évènements ;
On peut utiliser la méthode addEventListener() (recommandé).
Les événements
Présentation
Utiliser les attributs HTML pour gérer un évènement
Cette façon de faire ne devrait plus être utilisée aujourd’hui. Cependant,
de nombreux sites utilisent encore ce type de syntaxe ce qui nous force à
l’étudier ici.
Les événements
Présentation
Utiliser les propriétés JavaScript pour gérer un évènement
Les événements
Présentation
Utiliser la méthode addEventListener() pour gérer un évènement
Cette dernière façon de gérer les évènements est la manière
recommandée aujourd’hui car c’est la plus flexible et la plus performante.
On va passer deux arguments à cette méthode : le nom d’un évènement
qu’on souhaite prendre en charge ainsi que le code à exécuter (qui
prendra souvent la forme d’une fonction) en cas de déclenchement de cet
évènement.
Les événements
Arguments action
Available arguments of Action associated to
the object the event
Les événements
Exercice (1/2)
• Vous allez ajouter du code JavaScript à votre
formulaire de contact pour valider les entrées des
utilisateurs!
• Créer un nouveau fichier JS.
– Déclarez une fonction nommée validateForm ()
qui valide les saisies dans le formulaire
• Tous les champs doivent être remplis
– Si un champ a une erreur, définissez sa couleur sur
rouge
– Exécutez la fonction lors de la soumission du
formulaire!
Les événements
Exercice (2/2)
• Vous allez jouer avec le gestionnaire
d’événements!
• Créer une page contenant un seul bouton
HTML
• Créer un nouveau fichier JS
– Avec une fonction à l'intérieur:
• goToGoogle(): rediriger l'utilisateur vers le site Web de Google
Découvrir le langage JavaScript
CONCEPT DE CALLBACK
Questions?