isMobile() ? ($detect->isTablet() ? 'tablet' : 'phone') : 'computer'); $scriptVersion = $detect->getScriptVersion(); if ($deviceType != 'computer') { $pub_Adsense = '' . "\n"; $pub_Adsense .= ' ' . "\n"; $pub_Adsense .= ' Résumé de cours pour débuter en JavaScript

Les points à retenir en JavaScript

v Outils pour développer en JavaScript

            - NotePad++

                        -> Extension TextFX => Auto-fermeture ; nettoyer un document importé de Word ;…

              - Les EDI : Dreamweaver ; Aptana Studio ;…

v Tester la compatibilité

            -> FireFox; Google Chrome; Safari; Opera; IE;…

v Outils de débogage 

            Ÿ IE: ‘Outils de développement’ (F12)

            Ÿ Chrome : ‘Outils de développement’ (Ctrl+Maj+I ou J)

            Ÿ FireFox : ‘Outils de développement’ (Ctrl+Maj+I ou J)

                        -> Ajouter des Extensions de développement Web à Firefox : ‘Outils’ –> ‘Modules complémentaires’ 

                        -> ‘Catalogue’ ->  ‘Parcourir tous les modules complémentaires ‘ -> ‘Développement Web’ ->

                        Par exemple : Firebug ; Live HTTP Headers (voir les échanges avec le serveur) ;

CodeBurner for Firebug ; JSView ; Phoenix (voir les scripts et les CSS chargés)

v Firebug (F12 ou Ctrl+F12)

            Ÿ ‘Console’ => tester du code ;

            Ÿ ‘Réseau’ => Voir le temps de chargement des éléments de la page entre-autre

            Ÿ Bouton-droit sur un élément de la page -> ‘inspecter un élément’

v Tester du Code JS 

Ÿ Enregistrer sous Html et l’ouvrir dans un navigateur ;

            Ÿ Test dans l’IDE

            Ÿ Créer soi-même une page web qui permet de faire des tests

            Ÿ En mode ligne de commande :

-> ‘Outils de développement’ des navigateurs

-> Firebug (pour FireFox) : ‘Console’ -> ‘Afficher l’éditeur de commande’

v Références :

         Ÿ W3Scools

            Ÿ MDN

            Ÿ help.dottoro.com

 

v Variables

            — Les fonctions, Tableaux, expressions régulières sont de type Object

            => On peut écrire par exemple : var F1 = function() { Instructions ;… } ;   F1.Propriété1 = valeur ;

            n Déclaration litérale

                        Var i = 5 ;                   => Number

                        Var txt1 = ‘Nom’ ;                 =>String

                        Var bool1 = true ;                 =>Boolean

                        Var Tab1 = [] ;              ou var Tab1 = [2, ‘prenom’, function() {}] ;                     =>Tableau indicé

                        Var Obj1 = {} ;           ou var Obj1= {Prop1 : 5, Prop3 : {}, Prop2 :’Texte’ }       => Object

                        Var Reg1 = // ;                      => Expression régulière

            n Déclaration des variables avec les constructeurs

            Un constructeur est une fonction membre de la classe -de même nom- qui permet de l’instancier .

            Exemple :  var N1 = new Number() ; (N est un objet, Instance de type Number)

                               var txt1 = new String() ;

                               var F1 = new Function() ;

                               var B1 = new Boolean() ;           

                               var Tab1 = new Array() ;

                               var Obj1 = new Object() ;

                               var Reg1 = new RegExp() ;        

                                  

            n Portée des variables

            Une variable en JavaScript peut être locale -déclarée à l’intérieur d’une fonction-  ou globale -déclarée à l’extérieur des fonctions-

 

n Déclarer une fonction et l’exécuter au moment de son interprétation

         -> On entoure la déclaration de la fonction de parenthèses et on ajoute (paramètres)

ou () à la fin :

            ( Function Fct1() { Instructions ;… } ) () ;

n Nommer des variables dynamiquement

F On utilise l’objet Window  qui correspond au contexte global de la page web

Exemple :        var i=1 ;

window[‘x’+i] = 5 ;  => vas créer une variable x1 de valeur initiale 5.

                        — On peut déclarer ou accéder à une variable globale à l’aide de l’objet window ; exemple :

                                   Window.txt1 = ‘texte’ crée une variable globale txt1

v Les Opérateurs

         n Les Opérateurs d’affectations

F  = , + , - , * , %

— + sert à additionner des nombre mais aussi des chaines de caractères (concaténation).

— : Modulo => reste de la division ; exemple :

            5 % 2 -> 1 ;    4 % 2 -> 0

Il peut servir par exemple à déterminer si un nombre est pair ou impair.

— i += a est équivalente à i = i + a ; de même pour -= , *= et %=

— Incrémentation : ++i et i++ équivaut à i = i + 1

 

n Les Opérateurs de comparaison

F  == , === , > , < , <= , >=, != , !==

— == et != ne prend pas en compte le type de la variable alors que === et !== oui ; exemple :

5 == ‘5’  renvoie true alors que 5 === ‘5’ renvoie false

 

n Les Opérateurs logiques

F && (ET logique) , ǀǀ (OU logique) , ! (NON)

— 0 , ‘ ’ , NaN , Undefined , Null sont considérés comme valeur False dans des expressions logiques.

 

n Les Opérateurs binaires

F << , >> , & , ǀ ,…

Il s’agit de comparaison bit à bit. En développement web, ils sont très peu utilisés

 

n Les Opérateurs spéciaux

F Function , New , Typeof , This , Instanceof , in

— L’opérateur in permet de tester si une propriété est définie dans un objet

 

v Les structures de contrôle

            n If/else

                        if( condition ) {

...

} else {

...

          }

 

                        — L’opérateur ternaire ?

                        C’est une sorte de raccourcie de if-else ; exemple :

                        Var i = 5 ;

                        i == 5 ? alert(‘oui’) : alert(‘non’) ;

            n Switch / case

var chaine = (...);

switch( chaine ) {

case "une chaine":

alert("La variable chaine est égale à 'une chaine'");

break;

case "une autre chaine":

alert("La variable chaine est égale à 'une autre chaine'");

break;

default:

alert("La variable chaine est différente de"

+ " 'une chaine' et 'une autre chaine'");

}

            n La boocle For

                        for( var cpt=0; cpt<10; cpt++ ) {

alert("Valeur du compteur: "+cpt);

}

— For – In

Exemple :

var tableauIndexe = {

"cle1": "valeur1",

"cle2": "valeur2"

};

for( var cle in tableau ) {

alert("Valeur pour la clé "+cle+": "+tableau[cle]);

}

            n La boocle While

                        while( condition de fin ) {

(...)

}

Exemple :

var nombre = 0;

while( nombre < 10 ) {

nombre++;

}

— Do - While

C’est une variante de la précédente, qui permet d’exécuter le bloc avant

la première condition.

do {

(...)

} while( condition de fin );

Exemple :

var nombre = 0;

do {

nombre++;

} while( nombre < 10 );

                       

— Break / Continue

Break offre la possibilité d’arrêter l’itération d’une boucle et de sortir de son bloc d’exécution, et Continue  de forcer le passage à l’itération suivante.

 

            n Try – Catch

                        Dans l’exemple suivant nous faisons volontairement appel à une méthode testException inexistante afin

de déclencher une exception:

try {

testException(); //Cette méthode est inexistante!

} catch(error) {

alert("Une exception a été levée");

alert("Nom de l’exception levée : "+error.name);

alert("Message de l’exception levée : "+error.message);

} finally {

alert("Passage dans finally");

}

           

            n Throw

                        Throw est utilisée pour lancer une exception afin de signaler une erreur. Exemple :

try {

throw new Error("test");

} catch(error) {

alert("Une exception a été levée");

alert("Nom de l’exception levée : "+error.name);

alert("Message de l’exception levée : "+error.message);

}

            n Les labels

                        Ce sont des étiquettes qui aident à se repérer ou renvoyer à des emplacements particuliers du code.

 

 

v Les objets

         n Boolean

        

 

 

         n Number

 

                        — Attention aux nombres flottants!

            Exemples : - 0.2+0.3 == 0.5  donne false !

                                - 66*0.5 = 33 : juste mais 66*0.05 ne donne pas exactement 3.3 alors que 66*5/100 oui

                       

— Arrondir un nombre 

                        F La méthode toFixed:  

x.toFixed(ncs) ;   x : nombre à arrondir ; ncs : nombre de chiffres significatifs

 

— Convertir un nombre en chaine de caractères

F La méthode toString :

x.toString(base) ;   x : nombre à convertir ; base : 2 -> binaire, 16 -> hexadécimale, …

 

=> Convertisseur de bases

 

            n String

                        — Déclaration d’une chaine de caractères

            On peut déclarer un chaine de caractères de 2 manières qui sont équivalentes : 

                        Var txt1 = new String('texte1') ;

                        Var txt2 = "texte2 " ;

                        — " comme caractère

                        F on utilise  \"

                        — Retour chariot

                        F on utilise  \n ou \r ou les deux

                        — Nombre de caractères d’une chaine

                        F propriété .length

 

                        — Le caractère à une position i d’une chaine

                        F La méthode .charAt ( i ) ;                                                            !Ø L’indice i commence à 0

F La méthode charCodeAt ( i ) renvoie la représentation Unicode du caractère

 

— Position d’une sous-chaine

F La méthode .indexOf( texte, j ) ;             texte : la sous-chaine à chercher, 

(Facultatif) j : la position à partir de laquelle on va chercher        

!Ø Elle renvoie le rang de la 1ère sous-chaine trouvée       

Exemple :        Var txt = 'Bonjour' ;

                        Txt.indexOf ('o') ;     => renvoie 1. ('B' est à la position 0)

Si le texte n’est pas trouvé, la méthode renvoie -1.

F La méthode .lastIndexOf( texte) ; => renvoie la position de la dernière occurrence.

— Transformer un code en caractère

F La méthode String.fromCharCode ( code1,code2,…)

— Concaténer plusieurs caractères

F La méthode String.concat(c1,c2,…)    Ø On obtient le même résultat avec c1+c2+…

— Extraire une sous-chaine

F Les méthodes .slice (debut,fin) , .substring (debut,fin) , et substr(debut,nc)

Ø .slice (-n) renvoie les n derniers caractères

 

 

 

— La méthode match

La méthode match retourne les différentes sous-chaînes de caractères correspondant à l’expression régulière dans la chaîne de caractères initiale. Le code suivant illustre l’utilisation de cette méthode :

var chaine = "Bonjour le monde";

chaine.match(/o/g);    => renvoie le tableau o,o,o

Ø g (global) est un commutateur pour faire la recherche sur toute la chaine

chaine.match(/[a-z]/g);    => renvoie le tableau de toutes les lettres miniscules

 

— La méthode search

La méthode search retourne la position de la première occurrence correspondant à

l’expression régulière. Elle s’utilise comme dans le code suivant :

var chaine = "Bonjour le monde";

chaine.search(/\w/g);    => renvoie 0

                        — La méthode replace

La méthode replace permet de remplacer le premier élément correspondant à l’expression

régulière spécifiée. Le code suivant illustre son utilisation :

var chaine = "Bonjour le monde";

chaine.replace('Bonjour', 'Hello');    => renvoie Hello le monde

 

Ø Le 2ème paramètre de replace peut être une fonction !

 

            n Array

                   — 2 façons de déclarer un tableau :

                            Var tab1 = new Array() ;

                                    Var tab2 = [] ;   (ou [5, true, function(){}, [1, 2, 'a' ] ] )

                        !Ø Le paramètre de Array est interprété selon son type :

                                   Var tab3 = new Array(5) ;    => renvoie un tableau de 5 éléments

                                   Var tab4 = new Array('5') ;   => renvoie un tableau de 1 élément qui est le caractère '5'

                       

                   — Modifier ou ajouter un élément au tableau à une position donnée

                                   tab1 [i] = valeur ;

                        — Supprimer le dernier élément du tableau

                                   F La méthode.pop ()

                                   Ø  Cette méthode renvoie l’élément supprimé

                        — Supprimer le premier élément du tableau

                                   F La méthode.shift ()

— Ajouter des éléments à la fin du tableau

            F La méthode .push(vi+1,vi+2,…)

            Ø  Cette méthode renvoie la dimension du tableau après ajout .

— Ajouter des éléments au début du tableau

            F La méthode .unshift(v-1,v-2,…)  

— Inverser l’ordre d’un tableau

            F La méthode .reverse()

— Trier un tableau

            F La méthode .sort ()

            !Ø Sans paramètre, le tri se fait dans l’ordre alphabétique, pour affiner le tri, on peut utiliser une fonction comme paramètre et qui fixe les conditions de tri.

— Supprimer des éléments et insérer d’autres à leur place

F La méthode .splice(p,nes,e1,e2,…)

P : position du 1er élément à supprimer,  nes :nombre d’éléments à supprimer,  e1,e2,… : éléments à insérer.

            n Object

                   — 2 façons de créer un objet :

                            Var obj1 = new Object() ;

                                    Var obj2 = {} ;

— Savoir si une propriété est propre à l’objet ou elle est hérité d’un objet global

            F La méthode .hasOwnProperty('propriété')

— Savoir la fonction constructeur d’un objet

            F La méthode .constructor

 

— Ajouter des méthodes et propriétés à un objet

F Classe.prototype.

Exemple : Array.prototype.Shift_Pop = function()  {

This.pop() ;

This.shift() ;

}

            n Date

                        — Créer un objet date :

 Var d = new Date(param) ;   param peut être le nombre de millisecondes écoulés depuis 01-01-1970 à 00:00 ou la date en format string

Sans paramètre, la valeur initiale de d est la date et heure courante.

                        — Afficher la date en format string

                                    F La méthode .toLocaleString() ;

                        — L’année en cours

                                   F La méthode .getFullYear()

                        — Le mois en cours

                                               F La méthode . getMonth()

— Le jours du mois en cours

                                               F La méthode . getDate()

— Le jours de la semaine en cours

                                               F La méthode . getDay()

— La date en millisecondes (écoulés depuis 01-01-1970 à 00:00)

                                               F La méthode . getTime()

— Décalage horaire par rapport à l’heure GMT                                     

F La méthode getTimezoneOffset()

— Date sous forme de chaînes de caractères en utilisant les paramètres

régionaux                                   

F La méthode toLocaleString ()

— L’Heure dans le format locale                                           

F La méthode toLocaleTimeString ()

— Fixer une date                                   

F On remplace get par set dans les méthodes précédentes,

 

n Math

         Ø La classe Math (comme Global) est préinstanciée

 

— La valeur absolue

                                               F La méthode . Abs(x)

— Les fonctions trigonométriques

                                               F Les méthodes . cos(x), sin(x), tan(x), acos(x), asin(x), atan(x)

                                   x : en radian

— L’exponentiel et logarithme

                                               F La méthode . exp(x) et log(x)

— Arrondir un nombre

                                               F Les méthodes .

ceil(x)             => renvoie le nombre immédiatement supérieur

floor(x)           => renvoie le nombre immédiatement inférieur

round(x)         => renvoie le nombre le plus proche

var nombre = 34.567;

alert("Ceil : "+Math.ceil(nombre));    // Affiche 35

alert("Floor : "+Math.floor(nombre));  // Affiche 34

alert("Round : "+Math.round(nombre));  // Affiche 35

 

— Maximum et minimum d’un ensemble de nombre

                                               F La méthode . Max(x1,x2,…) et Min(x1,x2,…)

 

— La constante   e

                                         F Math.E

— La constante   p

                                         F Math.PI

 

n Global

         Ø La classe Global (comme Math) est préinstanciée

                        — Les fonctions d’encodage

                        F Les méthodes escape, unescape

Exemple : escape('éà') renvoie  %E9%E0

Et unescape('%E9%E0') renvoie  éà

                 — La méthode eval

                            Permet d’interpréter une chaîne de caractères contenant du JavaScript

                 — Extraire un nombre d’une chaine de caractère

                            F Les méthodes  parseInt, parseFloat

                        — Vérifier si une valeur est numérique

                                    F Les méthodes  isNaN (v)  et isFinite (v); 

 

n Les objets du DOM (Model objet de document)

 

                        Tous les éléments d’une page web sont structurés en un ensemble d’objets sous forme d’une arborescence qu’on appelle DOM  (Model objet de document). Le DOM est créé au moment de l’interprétation de la page web par le navigateur. Une fois créé, on peut manipuler les objets du DOM à l’aide de JavaScript.

                         Exemples :

                       

            — Modifier le contenu des valises 

Supposant qu’on a dans une page les balises suivantes :

              <div id="div1">        </div>

                                    <textarea id="txt1"> </textarea>

 

document.getElementById('div1').innerHTML +=  ' balise div ' ;   

                        document.getElementById('txt1').value = ' balise textarea ';

 

                        — Modifier les propriétés CSS d’un élément de la page

                        Exemples :

                        document.getElementById('ID de l’élément').style.width = ' 100px ' 

                        document.getElementById('ID de l’élément').style.height= ' 52px ' 

                        document.getElementById('ID de l’élément').style.backgroundColor= ' blue ' 

                        …

— Associer une fonction à un événement

                        Exemples :

                        document.getElementById('ID de l’élément').onclick = maFonction1   (référence)

!Ø Si on ajoute () à maFonction1 :

document.getElementById('ID de l’élément').onclick = maFonction1 ()

c’est la valeur retournée par maFonction1 qui sera affecté à onclick et non pas la fonction.

 

— Ajouter une balise script dynamiquement

function addJS(){

                if(document.getElementById('ajout')) {                                              document.getElementById('ajout').parentNode.removeChild(document.getElementById('ajout'));

                }

                var newScript = document.createElement('script');

                newScript.type = 'text/javascript';

                newScript.text = ' le contenu du script ';   //

                newScript.id = 'ajout';

                document.getElementsByTagName('head')[0].appendChild(newScript);                                         

}

 

            Ø Visiualiser le DOM

                                   F Firebug et son module complémentaire DOM Inspector