Le Langage JavaScript
Le Langage JavaScript
Le Langage JavaScript
1) Le modèle DOM.
Scripting local : le code est écrit au sein de la page HTML à l'intérieur des
balises <script language=javascript> et </script>
Scripting externe : le code est déporté dans un fichier séparé
(d'extension js), le chargement se fera donc de manière séparé grace à un
attribut scr : <script language=javascript scr=monScript.js> </script> . Ce
mécanisme permet de construire des bibliothèques de fonctions JavaScript.
Un premier exemple.
Eléments du langage.
La déclaration des variables n'est pas obligatoire, son type est implicite au moment
de la première affectation. Mais son type peut changer ; une variable a le type de sa
dernière affectation. 4 types de base sont proposés :
entier long
flottant : 12.456 ou -0.56e5
booléen : false ou true
chaîne
Fonctions
Le terme générique function est utilisé pour les fonctions et procédures, seule
l'instruction return les distingue.
function estHumain(age){
return (age>0 && age<125)
}
provoque :
function produit(){
var args=produit.arguments;
var nbArgs=produit.arguments.length;
var p=1;
for(var i=0;i<nbArgs;i++)
p*=args[i];
return p;
}
Les tableaux.
ch = "Bonjour le Monde";
ch.IndexOf('o',3) // retourne 4
ch.lastIndexOf('o') // retourne 12
Le débogage.
Les navigateurs peuvent alerter en cas d'erreur dans les scripts. Ceci dépend du
navigateur. Pour IIx, un message apparaît en bas à gauche :
Si l'on double-clique sur l'icône on fait apparaître une boite de dialogue, le choix de
visualiser les détails indique la ligne concernée :
fig 5 débogueur JavaScript
2) Le modèle événementiel
function verifSaisieNulle(ch){
if(ch.length==0)
alert("il faut saisir votre nom");
}
Cette fonction est appelé sur l'événement onBlur (perte de focus) de la zone de nom
:
remarque : le code JavaScript n'est pas écrit ici dans des balises.
Si l'on désire vérifier les saisies dans les deux champs on modifie la fonction afin
de controler toutes les zones de textes :
function verifSaisieNulleBis(){
var nb = document.forms[0].length;
for(var i =0;i<nb;i++)
if(document.forms[0].elements[i].value.length==0)
alert("il faut saisir tous les champs");
}
Mais si l'on effectue des saisies invalides (champs vides), après la fermeture des
boites de dialogues, le formulaire est néanmoins
function verifSaisieNulleBis(){
var nb = document.forms[0].length;
for(var i =0;i<nb;i++)
if(document.forms[0].elements[i].value.length==0){
alert("il faut saisir tous les champs");
return false;
}
return true;
}
C'est un vaste domaine qu'il n'est pas question de d'aborder dans le détail ici. Nous
n'allons présenter que quelques aspects.
Remarque : les règles de gestion des expressions régulières sont indépendantes des
langages; c'est un langage en soi
Exemples :
Modèles Exemples
/ma/ mari, emma, demandé
/^ma/ mari
/ma$/ emma
/^maison$/ maison
/al+/ ralentir,rallier,calibre
/al*/ ralentir, rallier, rateau, calibre
/^ral+/ ralentir, rallier
/^ra{2}/ rallier
/^ral{1,3}/ ralentir, rallier, ralllou
/(ra){1,3}/ tarara, tara, tirarace
/un|le/ un chat, le chat
/^.{3}$/ lui, non, une (3 caractères uniquement)
/[abc]/ chat, bal, bien (contient a ou b ou c)
/^[a-z]/ bateau ( commence par une lettre minuscule)
/^[^a-zA-Z]/ 5 bateaux (ne commence pas par une lettre)
Utilisation.
Remarque:
if(modele.test(ch))
Exemples :
function evalMdP(ch){
var modele = new RegExp("^[a-zA-Z]{5,8}$");
if(modele.test(ch))
alert("valide :");
else
alert ("pas valide :");
}
function verifNumeroMobile(ch){
var modele = new RegExp("^(06)[0-9]{8}$");
if(modele.test(ch))
alert("valide :"+ch);
else
alert ("pas valide :"+ch);
}
Function verifMail(ch){
var modele=new RegExp("^[a-zA-Z0-9\-_]+[a-zA-Z0-9\.\-_]*@[a-zA-Z0-9\-_]+\.
[a-zA-Z\.\-_]{1,}[a-zA-Z\-_]+")
if(modele.test(ch))
alert("valide :"+ch);
else
alert ("pas valide :"+ch);
}