JavaScript 10 minutes pour comprendre Core JavaScript Client-side JavaScript Applications http://campus.ec-lyon.fr/options/tic/js.pdf JavaScript D. Muller - 13-11-99 JavaScript 10 minutes pour comprendre JavaScript D. Muller - 13-11-99 1 Qu'est-ce que JavaScript JavaScript est un langage de programmation de scripts. Un script est un programme dont le code source est inclus dans un document HTML. Ce programme est interprété et s'exécute sur la machine du client lorsque le document est chargé ou lors d'une action de l'utilisateur (clic ou déplacement du curseur par exemple). Les principes, l'implémentation, le fonctionnement, les domaines d'application de JavaScript n'ont strictement rien à voir avec ceux de Java. Seule une éventuelle ressemblance superficielle au niveau de la syntaxe et la volonté de profiter d'un effet de mode relatif à Java ont valu à ce langage de s'appeler JavaScript. JavaScript - 10 minutes pour comprendre - D. Muller - 13-11-99 Fonctionnement de JavaScript Serveur Client WWWWWW Le client demande un document HTML au serveur. Le serveur envoie le document au client Le document contient un script. <SCRIPT LANGUAGE="JavaScript"> … Le client interprète le script </SCRIPT> JavaScript - 10 minutes pour comprendre - D. Muller - 13-11-99 2 Exemple de programme JavaScript <HEAD> <SCRIPT LANGUAGE="JavaScript"><!-- function maj() { document.write("Dernière mise à jour : " + document.lastModified); } //--> </SCRIPT> </HEAD> <BODY> Ceci est un essai <P> <SCRIPT><!-- maj(); //--> </SCRIPT> ! ! <NOSCRIPT>Dommage !</NOSCRIPT> JavaScript - 10 minutes pour comprendre - D. Muller - 13-11-99 Possibilités de JavaScript Contrairement à Java, JavaScript est complètement intégré au navigateur. Un programme JavaScript a accès à des informations internes au navigateur (version, plugins…), et à tous les éléments de la page HTML courante (cf. DOM). Les principales applications de JavaScript sont : (cid:127) la validation de formulaires avant envoi au serveur, (cid:127) la détection de type et de version de navigateur, (cid:127) la gestion de fenêtres (pop-ups, cadres…), (cid:127) la préservation d'informations contextuelles, (cid:127) la génération automatique de date, (cid:127) la détection de plug-in, (cid:127) les calculs côté client, (cid:127) les effets d'images... JavaScript - 10 minutes pour comprendre - D. Muller - 13-11-99 3 Versions JavaScript JavaScript a été inventé par Netscape et implémenté à partir de Navigator 2.0. Bien entendu (!) JavaScript a évolué au fur et à mesure des versions de navigateurs. La correspondance entre les versions du langage et les versions des navigateurs est rappelée ci-dessous : Version Navigator Explorer JavaScript 1.0 Navigator 2.0 I. Explorer 3.0 JavaScript 1.1 Navigator 3.0 - JavaScript 1.2 Navigator 4.0 I. Explorer 4.0 JavaScript 1.3 Navigator 4.06 I. Explorer 5.0 JavaScript - 10 minutes pour comprendre - D. Muller - 13-11-99 JavaScript Core JavaScript JavaScript D. Muller - 13-11-99 4 Environnements JavaScript Core JavaScript (le noyau de JavaScript) est un langage de script orienté objet qui, comme tout langage, reconnaît un certain nombre d'opérateurs, de structures de contrôle et d'instructions. Certains objets tels Array, Date ou Math font partie intégrante du langage, mais il est possible de compléter le noyau de base par des objets supplémentaires. (cid:127) Client-side JavaScript est une implémentation qui complète les éléments de base par des objets permettant de contrôler un navigateur (Netscape ou autre) et l'apparence du document courant. (cid:127) Server-side JavaScript ajoute des objets pertinents pour une exécution côté serveur, permettant par exemple de communiquer avec des bases de données, de gérer des sessions ou d'accéder aux fichiers du serveur (Essentiellement disponible sur serveurs Netscape). JavaScript - Core JavaScript - Introduction - D. Muller - 13-11-99 Environnements JavaScript Le principe qui consiste à étendre Core JavaScript avec des fonctionnalités spécifiques peut être généralisé pour la programmation de tout type de système. C'est sur cette base que JavaScript (Core JavaScript) a été standardisé par l'ECMA (European Computer Manufacturers Association) sous l'appellation ECMAScript : EECCMMAA--226622 == IISSOO--661166226622 == JJaavvaaSSccrriipptt 11..33 ((ccff NN 44..0066,, IIEE55)) Le standard ECMAScript a été adopté en août 1998. Les navigateurs implémentant JavaScript 1.3 datent de 1999. JavaScript - Core JavaScript - Introduction - D. Muller - 13-11-99 5 Syntaxe A priori, une instruction JavaScript se termine toujours par un point-virgule : pi = 3.141592; Toutefois, l'interpréteur est très permissif, et il fait partie des spécifications d'ECMAScript d'accepter l'absence de point- virgule dans tous les cas où cela ne conduit pas à une ambiguïté. a = b + c; Ambiguïté ! (d + e).print(); a = b + c ? (d + e).print() a = b + c(d + e).print(); return return; (a + b) (a + b); Un conseil : toujours finir une instruction par un point-virgule. JavaScript - Core JavaScript - Syntaxe - D. Muller - 13-11-99 Commentaires En JavaScript les commentaires peuvent prendre deux formes correspondant à la syntaxe C ou C++. /* ** initialisation de tableau */ var centralien = {}; // déclaration du tableau centralien.nom = "Deubaze"; centralien.prenom = "Raymond"; centralien.promo = 2000; // initialisation d'objet var centralienne = { prenom:"Raymonde", nom:"Deubaze", promo:2000}; JavaScript - Core JavaScript - Syntaxe - D. Muller - 13-11-99 6 Types de données JavaScript accepte les types de données suivants : (cid:127) des nombres (cf. 1, 2, 3, 42, 3.141592 …) (cid:127) des valeurs logiques , (true ou false) (cid:127) des chaînes (cf. "Hello !", 'Ca marche aussi', "aujourd'hui"…) (cid:127) null (cid:127) undefined Les conversions de type sont automatiques : "Pi vaut : " + 3.141592 + " (ou à peu près)" résulte bien en la chaîne escomptée, mais ceci ne fonctionne que pour l'opérateur +, ainsi : "64" - 4 donne 60, mais null et undefined valent false "64" + 4 donne "644" ... null vaut 0 JavaScript - Core JavaScript - Types de données - D. Muller - 13-11-99 Variables Les variables peuvent être déclarées explicitement : var pi = 3.141592; ou implicitement lors de leur première utilisation : pi = 3.141592; L'évaluation (i.e. à droite du signe =) d'une variable non initialisée produit une erreur si celle-ci n'est pas déclarée, undefined ou NaN si elle l'a été (suivant le contexte) … La portée d'une variable déclarée en dehors du corps d'une fonction est globale, et disponible dans l'ensemble du document courant. Si elle est déclarée dans le corps d'une fonction elle est locale à cette fonction. Les variables locales doivent être déclarées de manière explicite. JavaScript - Core JavaScript - Variables - D. Muller - 13-11-99 7 Valeurs littérales Nombres entiers : 314, 0xbebe, 011 (en octal, vaut 9) Nombres à virgule flottante : 1, 1., 1.0, -3.2e5, .1e10 Booléens : true, false Chaînes : "bla", 'bla', "J'ai dit \"non !\"", caractères spéciaux : \b backspace \f form feed \' apostrophe simple \n new line \" apostrophe double \r carriage return \040 code octal (ici espace) \t tab \0x20 code hexadecimal (ici espace) JavaScript - Core JavaScript - Valeurs littérales - D. Muller - 13-11-99 Tableaux Un tableau peut être initialisé avec une liste de valeurs (éventuellement vide) spécifiées entre crochets []. Par exemple : jours = [ "Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi" ]; initialise un tableau de 7 éléments (jours.length = 7). L' indice du premier élément est 0 : jours[0] vaut "Dimanche" jours[1] vaut "Lundi" ... N.B. Un tableau est un objet du type Array. JavaScript - Core JavaScript - Valeurs littérales - D. Muller - 13-11-99 8 Opérateurs de comparaison Ces opérateurs renvoient une valeur true ou false. Les opérandes peuvent être des nombres ou des chaînes. Les nombres sont comparés numériquement, les chaînes alphabétiquement. a == b a égale b ? a != b a différent de b ? a === b a strictement égal à b ? (opérandes égaux et du même type) a !== b a non strictement égal à b ? (vrai si valeur ou type différents) a > b a supérieur à b ? a >= b a supérieur ou égal à b ? a < b a inférieur à b ? a <= b a inférieur ou égal à b ? JavaScript - Core JavaScript - Opérateurs - D. Muller - 13-11-99 Opérateurs arithmétiques Les quatre opérateurs fonctionnent de manière classique : + addition, - soustraction, * multiplication / division (toujours à virgule flottante, jamais entière) Les autres opérateurs sont : % modulo, deux arguments, reste de la division entière ++ incrément, un argument, préfixe ou postfixe -- décrément, un argument, préfixe ou postfixe - opposé, un argument, préfixe JavaScript - Core JavaScript - Opérateurs - D. Muller - 13-11-99 9 Opérateurs bit à bit Les opérateurs bit à bit considèrent leurs opérandes comme des mots de 32 bits, mais retournent des valeurs numériques standard : & ET logique, bit à bit | OU logique, bit à bit ^ OU exclusif, bit à bit ~ complément bit à bit << décalage à gauche (on rentre des zéros à droite) >> décalage à droite (bit de signe conservé) >>> décalage à droite (on rentre des zéros à gauche) Exemple : 3 << 2 donne 12, JavaScript - Core JavaScript - Opérateurs - D. Muller - 13-11-99 Opérateurs logiques Les opérateurs logiques portent sur des variables booléennes. Toutefois leur évaluation est inhabituelle : a && b ET logique, ( a == false ) ? a : b a || b OU logique, (a == true ) ? a : b ! a NON logique, ( a == true) ? false : true N.B. == s'interprète de fait comme "peut être converti en". Par conséquent, si les opérateurs && et || sont appliqués à des variables booléennes, ils retournent un booléen conforme au résultat attendu. S'ils sont appliqués à des variables non booléennes le résultat est non booléen : par exemple : 1 && "Hello" vaut "Hello" JavaScript - Core JavaScript - Opérateurs - D. Muller - 13-11-99 10
Description: