M120 JavaScriptIntro
M120 JavaScriptIntro
JAVASCRIPT
Développer une interface utilisateur graphique
1 Introduction
¨ Types primitifs
¤ Number : n’importe quel nombre (IEEE 754-2008).
¤ Boolean : valeur booléenne (true ou false).
n Number.NEGATIVE_INFINITY : – ∞
¨ Exemple :
function isRightTiangle(a, b, c) {
return c === Math.pow(a * a + b * b, 0.5);
5 3 3 4 4 0.5
}
9 16
25
true
… arithmétiques +, -, *, /, %, ++, --
… de chaîne +
… de comparaison ===, !==, <, <=, >=, >, ==, !=
… booléens &&, ||, !
… logiques &, |, ^, ~, <<, >>, >>>
… d’affectation =, +=, -=, *=, /=, &=, |=, ^=, <<=, >>=, >>>=
… de condition ?:
… d’invocation () appelle d’une fonction ou d’une méthode
¨ Exemple :
function computePosition(speed, time, initialPosition) {
initialPosition = initialPosition || 0; //set default
return initialPosition + speed * time;
}
¨ Paramètres formels :
¤ Similaires à des variables locales.
¤ Liés aux paramètres effectif par position.
¨ Exemple :
const computePosition = function (speed, time, initialPosition) {
initialPosition = initialPosition || 0; //set default
return initialPosition + speed * time;
}
<identificateur>(<paramètres effectifs>)
¨ Exemple :
var result, ;
result = computePosition(20, 60 * 60);
¨ Opérateur d’invocation
¤ parenthèses immédiatement à la suite d’un identificateur
¨ Paramètres effectifs
¤ valeurs initiales des paramètres formels
¤ chaque valeur est lié au paramètre formel correspondant à sa sa
position (speed reçoit 20, time reçoit 60 * 60 et initialPosition ne
reçoit rien)
EPAI, Jérôme Frossard (2019)
28 Expression avec effet de bord
<identificateur>(<paramètres effectifs>)
¨ Opérateur d’invocation :
¤ Parenthèses immédiatement à la suite d’un identificateur.
¨ Paramètres effectifs :
¤ Valeurs initiales des paramètres formels
¤ Chaque valeur est liée au paramètre formel qui correspond à sa
position (speed reçoit 20, time reçoit 60 * 60 et initialPosition ne
reçoit rien).
EPAI, Jérôme Frossard (2019)
33 Structures de contrôle
if (<expression booléenne>) {
<instructions>
} else if (<expression booléenne>) {
<instructions>
} else {
<instructions>
}
switch(<expression>) {
case <expresion>:
<instructions>
break;
case <expresion>:
<instructions>
break;
default:
<instructions>
break;
}
while(<expression booléenne>){
<instructions>;
}
do {
<instructions>;
} while(<expression booléenne>);
try {
<instructions>;
} catch (<error object>) {
<instructions>;
} finaly {
<instructions>;
}
JavaScript. +Infinity
+undefined
+Math
¨ Dans un navigateur, cet objet est +eval(x)
+parseInt(string, radix)
référencé par la variable window. +parseFloat(string)
+isNaN(number)
+isFinite(number)
+decodeURI(string)
+decodeURIComponent(string)
+encodeURI(string)
+encodeURIComponent(string)
+Object()
+Function()
+Array()
+String()
+Boolean()
+Number()
Constructeurs des +Date()
+RegExp()
objets prédéfinis +Error()
+EvalError()
+RangeError()
+ReferenceError()
+SyntaxError()
+TypeError()
+URIError()
+charAt()
¨ Objet immuable (immutable) ⇒ les +charCodeAt()
+concat()
homogène. +shift()
+slice()
+sort()
+splice()
¨ Offre des méthodes pour simplifier la +toString()
+unshift()
création de structures de données telles +valueOf()
¨ Structure dynamique :
console.log(list.length) // écrit 2 dans la console
list[9] = "neuf"; // étend le tableau de 2 à 10 cellules
console.log(list.length) // écrit 10 dans la console
list.push("dix"); // ajoute une valeur à la fin du tableau
console.log(list.length) // écrit 11 dans la console
element = list.pop(); // retire et renvoie la dernière valeur
console.log(list.length) // écrit 10 dans la console
empty
lastName "Backus"
autor3
birthDate 1924
¨ Opérateur d’indexation :
const author = {lastName: "Backus", birthDate: 1924};
author["firstName"] = "John"; // crée la propriété firstName
const name = author["lastName"]; // renvoie "Backus"
<html>
<head>
</head>
<body>
<div id="header">
<h1>Titre 1</h1>
</div>
+documentElement <div id="container">
<h2>Titre 2</h2>
document : <p>
+body
document paragraphe1.
</p>
</div>
</body>
<html>
window :
Global, …
+document
window
HtmlElement
+accessKey
+className
+id
+innerHTML
+style
+tabIndex
¨ Exemple :
window.onload = function (e) {
// le paramètre e contient une référence à un objet
// de type Event qui représente l’événement.
console.log("Le document chargé!");
console.log(e);
}
EPAI, Jérôme Frossard (2019)
addEventListener
68
HtmlDocument HtmlElement
Window Events
Keyboard Events +onabort
+onkeydown +onerror
+onkeypress +onload
+onkeyup +onresize
+onscroll
+onunload