Javascript. Javascript : les bases du langage. Intégration de javascript dans la page html. Un style de programmation impératif

Documents pareils
Présentation du langage et premières fonctions

TP JAVASCRIPT OMI4 TP5 SRC

STAGE IREM 0- Premiers pas en Python

Projet de programmation (IK3) : TP n 1 Correction

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Java Licence Professionnelle CISII,

Introduction à MATLAB R

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Algorithmique et Programmation, IMA

Algorithmique et programmation : les bases (VBA) Corrigé


Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Cours No 3 : Identificateurs, Fonctions, Premières Structures de contrôle.

Notions fondamentales du langage C# Version 1.0

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Programmation C++ (débutant)/instructions for, while et do...while

Document Object Model (DOM)

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

TP 1. Prise en main du langage Python

Bases de programmation. Cours 5. Structurer les données

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Programmer en JAVA. par Tama

Utilisation d objets : String et ArrayList

Programmation Web. Madalina Croitoru IUT Montpellier

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

ACTIVITÉ DE PROGRAMMATION

Plan du cours Cours théoriques. 29 septembre 2014

Programmation en Java IUT GEII (MC-II1) 1

INF 321 : mémento de la syntaxe de Java

as Architecture des Systèmes d Information

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Chapitre 10 Arithmétique réelle

Devenez un véritable développeur web en 3 mois!

OCL - Object Constraint Language

Plan du cours. Historique du langage Nouveautés de Java 7

Langage Java. Classe de première SI

TD3: tableaux avancées, première classe et chaînes

Les structures. Chapitre 3

Programmation VBA/Excel. Programmation VBA. Pierre BONNET. Masters SMaRT & GSI - Supervision Industrielle P. Bonnet

Algorithmique & programmation

Introduction au langage C

Cours d algorithmique pour la classe de 2nde

Programme Compte bancaire (code)

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Le prototype de la fonction main()

Cours Informatique Master STEP

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr

DOM - Document Object Model

Solutions du chapitre 4

1 Définition et Appel d une fonction. V. Phan Luong. Cours 4 : Fonctions

Premiers Pas en Programmation Objet : les Classes et les Objets

Initiation à la programmation en Python

L envoi d un formulaire par courriel. Configuration requise Mail Texte Mail HTML Check-list

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février :30 à 20:30

Cours de C++ François Laroussinie. 2 novembre Dept. d Informatique, ENS de Cachan

Initiation à LabView : Les exemples d applications :

Apprendre Java en 154 minutes

TP1. Outils Java Eléments de correction

Examen Médian - 1 heure 30

Algorithmes et programmation en Pascal. Cours

Initiation à l algorithmique

Compléments de documentation Scilab : affichage de texte et formatage de nombres

4. Groupement d objets

Sélection du contrôleur

Corrigé des TD 1 à 5

Table des matières Avant-propos... V Scripting Windows, pour quoi faire?... 1 Dans quel contexte?

Principes des langages de programmation INF 321. Eric Goubault

AWS avancé. Surveiller votre utilisation d EC2

Analyse de sécurité de logiciels système par typage statique

Introduction à l algorithmique et à la programmation M1102 CM n 3

Sub CalculAnnuite() Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt"

Chapitre VI- La validation de la composition.

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Démonstration de la mise en cache via HTML 5 sur iphone

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

Calcul Formel et Numérique, Partie I

Algorithmique I. Algorithmique I p.1/??

Découverte de Python

1. Structure d'un programme FORTRAN 95

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

Introduction au langage Java

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Le langage C. Séance n 4

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

Transcription:

: les bases du langage Technologies du Web 1 Jean-Christophe Routier Licence 1 SESI Université Lille 1 présentation partielle, et parfois partiale un langage fonctionnel à objet à base de prototypes un langage de scripts, interprété les scripts peuvent être placés dans les documents html le navigateur possède un interprète javascript le code javascript permet d agir sur les propriétés des éléments de manipuler l arbre DOM dynamicité du document affiché Université Lille 1 - Licence 1 SESI Technologies du Web 1 1 Université Lille 1 - Licence 1 SESI Technologies du Web 1 2 Intégration de javascript dans la page html 2 cas de figure possibles : code javascript directement placé dans le corps du fichier html : <script type="text/javascript">... code javascript ici </script> code javascript dans un fichier séparé chargé à l aide de la balise script et de son attribut src : <script src="unfichier.js" type="text/javascript"> </script> Un style de programmation impératif Programmation impérative Capitaliser ce qui a été vu en InitProg et API1. variables structures de contrôles : conditionnelles et itératives une nouvelle syntaxe quelques différences dans les règles de fonctionnement de nouvelles fonctions à apprendre NB : flux de chargement du fichier html Université Lille 1 - Licence 1 SESI Technologies du Web 1 3 Université Lille 1 - Licence 1 SESI Technologies du Web 1 4

Types primitifs Variables boolean 2 constantes true, false opérateurs : négation!, et logique &&, ou logique number string pas de séparation nette entre entiers et flottants opérateurs : +, -, *, / (division flottante), % (reste de la division) -Infinity, Infinity pas de type caractère séparé de string, il faut considérer des chaînes de longueur 1 les chaînes se notent entre " ou : "exemple", un autre opérateur de concaténation : + + objet String = nombreuses méthodes Déclaration Il faut déclarer les variables à l aide du mot-clef var. Une variable doit être déclarée avant d être utilisée. Affectation L opérateur d affectation se note =. Une variable non initialisée a pour valeur null ou undefined var x; x = 12; var texte = " timoleon "; console.log(x); // 12 var y; console.log(y); // undefined console. log( z); // ReferenceError : z is not defined Université Lille 1 - Licence 1 SESI Technologies du Web 1 5 Université Lille 1 - Licence 1 SESI Technologies du Web 1 6 Quelques prédicats Fonctions var x = 1; x == 1; x!= 1; var s = " timoleon "; s == " timoleon "; s!= " javascript "; var y = 12; x > y; x <= y; s < " abracadabra "; "un" >= "deux"; var z; z == null ; z == undefined ; z = 1; z == null ; Valeur de type fonction le mot-clef function permet de définir une donnée de type fonction, on précise entre parenthèses les paramètre formels séparés par des virgules, le corps de la fonction est noté entre accolades, la valeur de retour d une fonction est précisé par return return n est pas obligatoire (dans ce cas valeur retour = undefined) function (x, y) { var valeur = x+y; return 2* valeur + 1 ; function (x) { alert ("la valeur est "+x); Université Lille 1 - Licence 1 SESI Technologies du Web 1 7 Université Lille 1 - Licence 1 SESI Technologies du Web 1 8

Fonctions Autre syntaxe Définition et appel définir une fonction c est définir une variable dont la valeur est de type fonction on appelle une fonction en précisant les paramètres effectifs entre parenthèses var exemple = function (x, y) { var valeur = x+y; return 2* valeur + 1 ; // éqv à : function exemple (x, y) { // var exemple = function (x, y) { var valeur = x+y; return 2* valeur + 1 ; exemple (2,3); // vaut 11 exemple (2,3); // vaut : 11 exemple ; // vaut : function (x,y) {... Université Lille 1 - Licence 1 SESI Technologies du Web 1 9 Université Lille 1 - Licence 1 SESI Technologies du Web 1 10 Règle de portée Séquence et bloc Locale et globale toute définition de variable dans une fonction est locale à la fonction. une variable locale masque une variable globale de même nom. var timo = 12; // déf. globale, timo vaut 12 var leon = -5; // déf. globale, timo vaut -5 var exemple = function () { // déf. globale de exemple var timo = 2; // déf. locale, timo vaut 2 var valeur = 10 ; // déf. locale, valeur vaut 10 return 2* valeur + timo + leon; // valeur : 2*10 + 2-5 = 17 exemple (); // vaut 17 timo; // vaut 12 leon; // vaut -5 valeur ; // Erreur : valeur non définie Séquence Les instructions se terminent par un ;. Bloc d instructions Un bloc d instructions en séquence se note entre accolades. Un bloc d instructions est une instruction. Attention Contrairement à de nombreux langages, un bloc ne définit pas de règle de portée. La seule règle de portée se situe au niveau des fonctions. Université Lille 1 - Licence 1 SESI Technologies du Web 1 11 Université Lille 1 - Licence 1 SESI Technologies du Web 1 12

Structure conditionnelle Structures itératives : pour if (condition) { si true else { si false la partie else n est pas obligatoire var collatz = function(i) { if (i % 2 == 0) { return i/2; else { return 3*i+1; false, 0, "", NaN, null, undefined valent false, tout le reste vaut true for (var i = inf ; i < max ; i=i+1) { // i=i+1 s écrit aussi i++ var sommeentiers = function ( bornemax ) { var somme = 0; for( var i = 0 ; i < bornemax ; i=i +1) { somme = somme + i; return somme ; sommeentiers (100) ; // somme vaut 4950 Université Lille 1 - Licence 1 SESI Technologies du Web 1 13 Université Lille 1 - Licence 1 SESI Technologies du Web 1 14 Structures itératives : tant que tant que et pour while ( condition ) { var sommechiffres = function ( n) { var result = 0; while (n > 0) { result = result + ( n % 10); n = Math.floor (n/10); return result ; sommechiffres (12345) ; // vaut 15 do { while (condition ) Une boucle pour peut toujours s écrire sous la forme d une boucle tant que. pour i variant de borne inf à borne sup répéter corps de boucle En javascript les boucles for sont des while déguisées : for ( init ; condition ; increment ) { i borne inf tant que i borne sup répéter debutbloc corps de boucle i i + 1 finbloc init; while (condition ) { ; increment; Université Lille 1 - Licence 1 SESI Technologies du Web 1 15 Université Lille 1 - Licence 1 SESI Technologies du Web 1 16

Conversions On peut donc aussi écrire : var sommechiffres = function ( n) { for(var result =0; n > 0; n = Math.floor (n/10)) { result = result + ( n % 10); return result ; sommechiffres (12345) ; // vaut 15 mais cela ne veut pas dire que l on doit le faire... javascript est (très) souple sur la notion de typage. javascrit applique «automatiquement» certaines conversions de type sur les valeurs lorsque le contexte le nécessite : vers le type boolean (cf. remarque précédente) vers le type string vers le type number a une incidence sur la notion d égalité Université Lille 1 - Licence 1 SESI Technologies du Web 1 17 Université Lille 1 - Licence 1 SESI Technologies du Web 1 18 Conversion en booléen et en chaîne Conversion en nombre var valeurbooleenne = function ( val) { if ( val) { // dans ce contexte valeur booléenne attendue return " " + val +" est converti en true"; // chaine attendue else { return " " + val +" est converti en false "; valeurbooleenne (" abcd"); valeurbooleenne (""); // -> abcd est converti en true // -> est converti en false une chaîne dont les caractères représente un nombre est convertie en ce nombre NB : dans un expression avec l opérateur + c est la conversion vers chaîne qui l emporte NaN : Not a Number valeur de conversion pour toute expression qui ne peut être convertie en un nombre peut se tester avec fonction isnan. var x; valeurbooleenne ( x); x = 0; valeurbooleenne ( x); x = 1; valeurbooleenne ( x); // -> undefined est converti en false // -> 0 est converti en false // -> 1 est converti en true "12.5"*3; // -> 37.5 "99" -5; // -> 94 "99"+5 // -> "995" /!\ "deux"*3; isnan ("deux"*3); // -> NaN // -> true Université Lille 1 - Licence 1 SESI Technologies du Web 1 19 Université Lille 1 - Licence 1 SESI Technologies du Web 1 20

parseint et parsefloat Egalités étranges convertissent une chaîne en nombre (entier ou flottant) seul le premier nombre dans la chaîne est retourné, les autres caractères (y compris correspondant à des nombres) sont ignorés si le premier caractère ne peut être converti en un nombre, le résultat sera NaN les espaces en tête sont ignorés parsefloat ("1.24"); // -> 1.24 parseint ("42"); // -> 42 parseint ("42 est la reponse "); // -> 42 parseint (" 42 est la reponse "); // -> 42 parseint ("42 estlareponse "); // -> 42 parseint ("42 43 44"); // -> 42 parseint (" reponse = 42"); // -> NaN Attention Du fait de la conversion, dans certains cas des valeurs de types différents peuvent être considérées égales. 1 == "1" // -> true 10!= "10" // -> false 1 == "un" // -> false 0 == false // -> true " 0" == false // -> true /!\ alors que "0" se convertit en false L opérateur === teste à la fois le type et la valeur (négation!==). 1 === "1" // -> false 0 === false // -> false 10 === 9+1; // -> true 1!== "1"; // -> true Université Lille 1 - Licence 1 SESI Technologies du Web 1 21 Université Lille 1 - Licence 1 SESI Technologies du Web 1 22 Objets Premiers liens avec document html les objets possèdent des méthodes (= fonctions) une méthode s invoque sur un objet on utilise la «notation pointée» Ex : avec l objet String var s = new String (" timoleon "); // création d un objet String var sub = s. substring (2,6); // sub vaut " mole" s. charat (4); // vaut "l" s. length ; // vaut 8 // conversion des valeurs string vers objet String " abracadabra ". charat (2); // vaut "r" " abracadabra ". substring (4,8); // vaut "cada" En attendant mieux... window.alert affiche une «popup» d information window.prompt affiche une boîte de dialogue avec une zone de saisie de texte a pour résultat le texte saisi Attention : le résultat est de type string, prévoir des conversions avec parseint ou parsefloat si nécessaire. document.write et document.writeln écrit du texte dans le flux html le texte écrit est interprété par le navigateur Attention : efface le contenu du document si le flux doit être réouvert ne pas utiliser dans une fonction! Université Lille 1 - Licence 1 SESI Technologies du Web 1 23 Université Lille 1 - Licence 1 SESI Technologies du Web 1 24