Académique Documents
Professionnel Documents
Culture Documents
I) Introduction :
JavaScript est un langage interprt par le navigateur. Le JavaScript est un langage client , c'est--dire excut chez l'utilisateur lorsque la page Web est charge. Il a pour but de dynamiser les sites Internet. Le JavaScript est un langage sensible la casse ( case sensitive ). JavaScript est un langage objet : chaque objet possde des mthodes (ou fonctions), des proprits et .... des objets. Dans une page Web, l'objet le plus lev dans la hirarchie est la fentre du navigateur : window. Cet objet window contient entre autres l'objet document qui lui mme contient tous les objets contenus dans la page Web (paragraphes, formulaires, etc...). En plus de ces objets, il existe des objets crs par l'utilisateur. Les mthodes sont des fonctions qui permettent d'agir sur certaines proprits de l'objet, les proprits contiennent les paramtres d'un objet.
III) Syntaxe
III-1) Les variables a) syntaxe des variables On declare une variable en javascript en utilisant le mot cl var nomDeVariable JavaScript reconnat les types primitifs suivants : les nombres : 42 ou 3.1415 les boolens : true ou false les chanes : "Bonjour !" null
Il ny a pas de distinction entre entiers et rels. Les identificateurs doivent commencer par une lettre ou un suivi par des lettres, des chiffres ou des _ . b) La conversion JavaScript tant faiblement type les variables ne sont pas associes `a un type particulier. Exemple : var i = 42 i = "Bonsoir" Dans une expression faisant intervenir des nombres et des chanes les nombres sont convertis en chane. Exemple : p = "Jai commande " + 1 + "aspirateur et " + 3 + "assiettes." Fonction de conversion :
Exemple 2
parseInt('123.45') parseInt('77') parseInt('077',10) parseInt('77',8) parseInt('077') parseInt('77',16) parseInt('0x77') parseInt('099') parseInt('99',8) parseInt('0.1e6') parseInt('ZZ',36) // // // // // // // // // // // 123 77 77 63 (= 7 + 7*8) 63 (= 7 + 7*8) 119 (= 7 + 7*16) 119 (= 7 + 7*16) 0 (9 is not an octal digit) NaN (0 in very old browsers e.g. IE3) 0 1295 (= 35 + 35*36)
c) La porte dune variable Globale : la variable est visible depuis nimporte quel endroit. Locale : la variable nest visible que dans la fonction courante. Pour dclarer une variable locale `a une fonction il faut utiliser le mot-cl var. d) Les littraux
Les entiers
Les entiers peuvent etre exprimes en base 8, 10 ou 16. Sil commence par 0 sa base est 8. Sil commence par 0x ou 0X sa bse est 16. Sinon sa base est 10.
Les rels
Utilisent . pour la virgule et e ou E pour la partie exposant.
Les chanes
On peut utiliser " ou pour dlimiter une chane. Quelques caractres spciaux peuvent tre utiliss `a lintrieur : \ n pour un saut de ligne, \ r pour un retour au dbut de ligne, \ t pour une tabulation.
b) La dclaration de variables
Syntaxe : var nom1 [= valeur1] [..., nomN [= valeurN] ]. Par exemple : var i = 0, j = 2
c) La dclaration de fonctions
Existe sous deux formes syntaxiques possibles : function nom() { instructions } function nom(param1,...,paramN) { instructions } Par exemple :
e) Linstruction return
Permet de sortir dune fonction en cours en retournant une valeur `a lappelant. Deux formes syntaxiques : return return expression
g) La boucle for
Ralise litration dun bloc dinstructions. La syntaxe est :
switch
Permet dexcuter des instructions selectionns par la valeur dune expression. Par exemple : switch(i) { case 1: // qqe chose break case 2: // autre chose break default: // encore autre chose break }
j) La boucle while
Tant quune certaine condition est vrifie une instruction ou un bloc est execut e. Syntaxe : while (condition) instruction-ou-bloc .
k) Linstruction delete
Permet de supprimer une proprit dun objet, ou un lment dans un tableau. Trois formes sont possibles : delete objet.proprit delete objet[indice]
Par exemple :
t = new Array(1,2,3) for (var i=0; i<t.length; i++) { document.writeln(t[i]); } delete t[1]; document.writeln("<P>"); for (var i=0; i<t.length; i++) { document.writeln(t[i]); } Rsultat : 123 1 undefined 3
Boite de dialogue
Une bote de dialogue est une fentre qui s'affiche au premier plan suite un vnement, et qui permet
Soit d'avertir l'utilisateur Soit le confronter un choix Soit lui demander de complter un champ pour rcuprer une information
1)
La mthode alert()
La mthode alert() permet d'afficher dans une bote toute simple compose d'une fentre et d'un boutonOK le texte qu'on lui fournit en paramtre. Ds que cette bote est affiche, l'utilisateur n'a d'autre alternative que de cliquer sur le bouton OK.
2) La
mthode confirm()
La mthode confirm() est similaire la mthode alert(), si ce n'est qu'elle permet un choix entre "OK" et "Annuler". Lorsque l'utilisateur appuie sur "OK" la mthode renvoie la valeur true. Elle renvoie false dans le cas contraire...
3) La mthode prompt()
La mthode prompt est un peu plus volue que les deux prcdentes puisqu'elle fournit un moyen simple de rcuprer une information provenant de l'utilisateur, on parle alors de bote d'invite. La mthode prompt()requiert deux arguments : le texte d'invite la chane de caractres par dfaut dans le champ de saisie
lappel `a toutvoir(personne,"p") produit le r sultat : p.nom = Dupont p.prenom = Jean IV-2)Fonctions Une fonction dfinit une entit de calcul. La syntaxe est : function <nom> ( <liste de param`etres> ) { <suite dinstructions> } Exemple : function somme(n) { var r = 0 ; for (var i = 1; i <= n; i++) r += i ; return r ; } document.writeln("<P>" + somme(10)); produit : Les arguments dune fonction sont accessibles `a lintrieur de celle-ci en utilisant la proprit arguments qui est un tableau. Le premier argument est dindice 0 et il y en a arguments.length : function voirArguments() { var r = "" for (var i=0; i < voirArguments.arguments.length; i++) r += "Arg[" + i + "]=" + voirArguments.arguments[i] + " (de type " + typeof(voirArguments.arguments[i]) + ")<BR>" return r } document.writeln("<P>" + voirArguments("un","deux","trois",4)); produit : Arg[0]=un (de type string) Arg[1]=deux (de type string) Arg[2]=trois (de type string) Arg[3]=4 (de type number) IV-3)Mthodes Une mthode est une fonction associe `a un objet. Pour raliser cette association il suffit dutiliser la syntaxe suivante : < objet>.< mthode> = < fonction>. Le mot-cl this permet de faire rfrence `a lobjet courant. Exemple : function observe() { var result = "" for (var i in this) result += "<P>" + i + " = " + this[i] return result } p.maFonction = observe;
document.writeln(p.maFonction()); dont le rsultat est : p.nom = Dupont p.prenom = Jean p.maFonction = function observe(s) { var result = ""; for (var i in this) { result += "<P>" + s + "." + i + " = " + this[i]; } return result; } IV-4) La cration dobjets Bien que de nombreux objets soient dfinis par lenvironnement dexcution, il est videmment possible de crer de nouveaux objets. Pour cela il faut : dfinir un type dobjets en crant une fonction correspondante, crer une instance de ce type en utilisant : new function personne(nom,prenom) { this.nom = nom; this.prenom = prenom; } p = new personne("Dupont","Jean") Il est videmment possible de crer autant dobjets que lon dsire. Une proprit dun objet peut etre un autre objet. Exemple : function bureau(numero,proprietaire) { this.numero = numero this.proprietaire = proprietaire } p = new personne("Dupont","Jean"); b = new bureau("117",p); document.writeln("<P>"+toutvoir(p,"p")); document.writeln("<P>"+toutvoir(b,"b")); produit : p.nom = Dupont p.prenom = Jean b.numero = 117 b.proprietaire = [object Object] Dautre part on peut aussi rajouter dynamiquement des proprits aux objets `a tout instant : p = new personne("Dupont","Jean"); b = new bureau("117",p); document.writeln("<P>"+toutvoir(p,"p")); document.writeln("<P>"+toutvoir(b,"b")); p2 = new personne("Durand","Jeanne"); p2.sexe = "F"; document.writeln("<P>"+toutvoir(p2,"p")); produit : p.nom = Dupont p.prenom = Jean
b.numero = 117 b.proprietaire = [object Object] p2.nom = Durand p2.prenom = Jeanne p2.sexe = F Attention : cela ne permet que dajouter des proprits `a une instance particulire... Pour ajouter une proprit `a tous les objets (existants ou futurs) dune classe il faut ajouter une proprit `a la proprit prototype. Dfinition de mthode On peut maintenant dfinir des mthodes pour lobjet : function voirBureau() { return "Le bureau numro " + this.numero + " est affect `a " + this.proprietaire.affiche() } function voirPersonne() { return this.prenom + " " + this.nom } b = new bureau(117,p); bureau.prototype.affiche = voirBureau ; personne.prototype.affiche = voirPersonne ; document.writeln("<P>"+b.affiche()); produit : Le bureau numro 117 est affect `a Jean Dupont
concat(ch1,ch2,) Permet de concatner les chanes passes en paramtre, c'est-dire de les joindre bout bout. toLowerCase Transforme la chane de caractres en minuscules. to UpperCase Transforme la chane de caractres en majuscules. LA MISE AU FORMAT HTML Certaines fonctions permettent dajouter une string un ensemble de codes HTML automatiquement. anchor > anchor(URL) Cre une ancre HTML laide de lURL donne en argument. Exemple : "texte_lien". anchor(URL) Est quivalent : <A href=URL> texte_lien </A>. chain.slice(index1[,-index2]) Si index2 est absent, sous chane de chain comprise entre index1 et la fin de chane incluse. Si index2 est prsent, sous chane de chain comprise entre index1 et la fin de chane index2 exclue. Ex :
var abc="ABCDEABCDEF"; Affiche CDEABC : alert(abc.slice(2, -3)); Affiche CDEABCDEF : alert(abc.slice(2));
split(caractre de sparation) permet de convertir dune chane de caratres vers un tableau ex : var str="How are you doing today?"; var n=str.split(" "); rultat ca sera : un tableau qui contient les valeurs suivantes: How,are,you,doing,today?
V-2) Les Dates et les heures L'objet Date permet de travailler avec toutes les variables qui concernent les dates et la gestion du temps. Il s'agit d'un objet inclus de faon native dans Javascript, et que l'on peut toujours utiliser. La syntaxe pour crer un objet-date peut tre une des suivantes :
les paramtres sont une chane de caractre suivant scrupuleusement la notation GMT standard, ex: Wed, 28 Jul 1999 15:15:20 GMT
les paramtres sont une chane de caractre suivant scrupuleusement la notation cidessus
les paramtres sont trois entiers spars par des virgules. Les paramtres omis sont mis zro par dfaut
les paramtres sont six entiers spars par des virgules. Les paramtres omis sont mis zro par dfaut
b)connatre la date
Les mthodes dont le nom commence par le radical get (mot anglais qui signifie rcuprer) permettent de renvoyer une partie de l'objet Date : Mthode getDate() Description Permet de rcuprer la valeur du jour du mois Permet de rcuprer la getDay() valeur du jour de la semaine pour la date spcifie Type de valeurs retourne L'objet retourn est un entier (entre 1 et 31) qui correspond au jour du mois : L'objet retourn est un entier qui correspond au jour de la semaine :
L'objet retourn est un entier qui Permet de rcuprer la getFullYear() valeur de l'ann sur 4 chiffres pour la date passe en paramtre </script> getHours() Permet de rcuprer la valeur de l'heure Permet de rcuprer le getMilliseconds() nombre de millisecondes L'objet retourn est un entier (entre 0 et 23) qui correspond l'objet Date. L'objet retourn est un entier (entre 0 et 999) qui correspond aux millisecondes de l'objet pass en paramtre. L'objet retourn est un entier (entre 0 et 59) qui correspond aux minutes de l'objet Date. L'objet retourn est un entier (entre 0 et 11) qui correspond au mois : correspond l'anne (XXXX) : <script language="Javascript">
getMinutes()
getMonth()
getSeconds()
L'objet retourn est un entier (entre 0 et 59) qui correspond aux secondes de l'objet pass en paramtre. L'objet retourn est un entier. Cette mthode est trs utile pour convertir des dates, soustraire ou ajouter deux dates, etc. L'objet retourn est un entier, il reprsente le nombre de minutes de dcalage L'objet retourn est un entier qui
getTime()
getTimezoneOffset()
Permet de rcuprer la getYear() valeur de l'ann sur 2 chiffres pour l'objet Date.
</script>
Mthode
Type de valeurs retourne L'objet retourn est une chane de caractre du type : Wed, 28 Jul 1999 15:15:20 GMT L'objet retourn est une chane de
toGMTString()
Modifier la date
Les mthodes dont le nom commence par le radical set (mot anglais qui signifie rgler) permettent de modifier une valeur :
Mthode setDate(X)
Type de valeur en paramtre Le paramtre est un entier (entre 1 et 31) qui correspond au jour du mois Le paramtre est un entier qui correspond
setDay(X)
au jour de la semaine :
setHours(X)
Le paramtre est un entier (entre 0 et 23) qui correspond l'heure Le paramtre est un entier (entre 0 et 59) qui correspond aux minutes Le paramtre est un entier (entre 0 et 11)
setMinutes(X)
setMonth(X)
qui correspond au mois : 0: janvier 1: fvrier ... Le paramtre est un entier reprsentant le
setTime(X)