Introduction to JavaScript

Institut Supérieur des Études Technologiques
Page 1 sur 13Lecteur de document UniversityLib

Introduction to JavaScript

Institut Supérieur des Études Technologiques · Programming · notes

Voir tous les documents en programmation

TI1

Chapitre 3: Initiation JavaScript

Introduction

Brendan Eich

JavaScript (souvent abr g JS) est un langage de programmation de scripts

Membre du conseil

d'administration de la

fondation Mozilla

utilis dans les pages web interactives. Le langage a t cr en 1995

par Brendan Eich pour le compte de Netscape Communications Corporation.

Le langage, actuellement a la version 1.8.2.

Le Javascript est sensible la casse, c'est- -dire qu'il fait une diff rence entre

un nom de variable contenant ou non des majuscules.

Ainsi la fonction bonjour(); n'est pas la m me fonction que Bonjour();.

Comme en langage C, chaque instruction se termine par un point-virgule (;).

JavaScript & Java

Il ne faut pas confondre le JavaScript et le Java. En effet contrairement au langage Java, le code

est directement crit dans la page HTML, c'est un langage peu volu qui ne permet aucune

confidentialit au niveau des codes. D'autre part l'applet Java a t pr alablement compil e, et

une machine virtuelle permettant d'interpr ter le pseudo-code doit tre charg e en m moire

(du c t du client) chaque chargement de la page, d'o un important ralentissement pour les

applets Java contrairement au JavaScript.

Javascript

Langage interpr t

Code int gr au HTML

Langage peu typ

Liaisons dynamiques: les

r f rences des objets sont

v rifi es au chargement

Accessibilit du code

Java

Langage pseudo-compil

(chargement d'une machine virtuelle)

Code (applet) part du document HTML, appel partir

de la page

Langage fortement typ (d claration du type de variable)

Liaisons statiques: les objets doivent exister au chargement

(compilation)

Confidentialit du code

ISET DE BIZERTE 2014-2015 | HTML5 1

TI1

Insertion de code JavaScript dans une page HTML

Utilisation de la balise script

Un script est une portion de code qui vient s'ins rer dans une page HTML. Le code du script

n'est toutefois pas visible dans la fen tre du navigateur car il est compris entre des balises (ou

tags) sp cifiques qui signalent au navigateur qu'il s'agit d'un script crit en langage JavaScript.

Les balises annon ant un code Javascript sont les suivantes :

<script type="text/javascript" language="JavaScript" >

//Placez ici le code de votre script

</script>

On ins re normalement toutes les fonctions et initialisations dans le head de la page HTML

(cela assure que les proc dures soient connues, avant d tre appel es).

Exemple

programme sayhello() qui permettra dafficher une petite fen tre avec le texte: "Bonjour Tout le monde!!!"

<HEAD>

<TITLE>Hello World avec JavaScript</TITLE>

<script language="JavaScript" type="text/javascript">

// ICI on definit une fonction JavaScript

function sayhello() {

alert("Bonjour tout le monde!!! ")

}

</script>

</HEAD>

<BODY>

Script Externe

Il est possible de mettre les portions de code dans un fichier externe. L'appel se fait via l'attribut

SRC, plac dans la balise Script.

Exemple

<html>

<head>

<title> </title>

<script type="text/javascript" src="MonFichier.js"></script>

</head>

<body>

</body>

</html>

ISET DE BIZERTE 2014-2015 | HTML5 2

TI1

Syntaxes

D claration des variables

En JavaScript les variables ne sont pas typ es. La d claration peut se faire dune mani re

explicite gr ce au mot clef var ou dune mani re implicite.

Exemple

var i; //D claration de variable dune fa on explicite

i = 2;

chaine = "bonjour"; //D claration de variable dune fa on implicite

bool = true;

@

Les variables ne doivent pas tre des mots-clefs JavaScript : var, form, int,

document, etc..

D finition des fonctions

Une fonction est introduite par function.

function nom(arg0, arg1, ..., argN) { //votre script. }

//ou

var nom = function (arg0, arg1, ..., argN) { //votre script. }

Exemple

return n1+n2; }

function sum(n1, n2) {

alert(sum(5,10)); //15

// ou bien

var sum = function (n1, n2) { return n1+n2; };

alert(sum(5,10)); //15

Port e locale dune variable

function test() {

var message = "hi";

}

test();

Publicité

alert(message); // undefined

Port e globale

function test() {

message = "hi";

}

test();

alert(message); // "hi"

Types

ISET DE BIZERTE 2014-2015 | HTML5 3

TI1

Types

Il y a principalement trois types classiques de donn es Boolean, Number, String et un type

complexe Object (liste de couples nom-valeurs). Il est possible de d terminer le type (courant)

d'une variable avec l'op rateur typeof qui retourne l'une des valeurs suivantes:

undefined si la valeur est ind finie (variable d clar e mais pas initialis e ou variable non

d clar e)

boolean

number

string

object si la valeur est un objet ou null

function si la valeur est une fonction

Conversions num riques

Relatifs aux valeurs et conversions des nombres, on trouve 4 fonctions :

isNaN d termine si un param tre donn n'est pas un nombre

Number effectue une conversion

parseInt effectue une conversion en valeur enti re

parseFloat effectue une conversion en valeur r elle

Exemple

alert(isNaN(10)); // false

alert(isNaN("10")); // false - peut tre convertie

alert(isNaN("blue")); // true - ne peut tre convertie

var num1 = Number("hello world"); // NaN

var num2 = Number("00001"); // 1

var num3 = Number(true); // 1

var num3 = parseInt(""); // NaN

var num4 = parseInt(22.5); // 22

var num5 = parseInt("70",10); // 70 - la base 10 est sp cifi e

var num6 = parseFloat("22.5"); // 22.5

String

On utilise les quotes simples (apostrophes) ou doubles (guillemets) pour d finir des valeurs

cha nes de caract res. L'attribut length permet de d terminer la longueur d'une cha ne.

Exemple

var nom = "Ali";

var prenom = 'Mohamed';

alert(prenom.length); // 7

var message = "toto a dit \"je suis malade\".";

Il est possible de transtyper une valeur en cha ne avec String().

Exemple

ISET DE BIZERTE 2014-2015 | HTML5 4

TI1

var v1 = 10; alert(String(v1)); // "10"

var v2 = true; alert(String(v2)); // "true"

var v3 = null; alert(String(v3)); // "null"

var v4; alert(String(v4)); // "undefined"

Il existe de nombreuses fonctions sur les cha nes de caract res.

Exemple

var s = "hello world";

alert(s.length); // 11

alert(s.charAt(1)); // "e"

alert(s.charCodeAt(1)); // 101

alert(s.slice(3)); // "lo world"

alert(s.slice(-3)); // "rld"

alert(s.substring(3,7)); // "lo w"

alert(s.indexOf("o")); // 4

alert(s.lastIndexOf("o")); // 7

alert(s.toUpperCase()); // HELLO WORLD

alert(s + " !"); // hellow world !

Math

Il s'agit d'un objet d finissant de nombreuses constantes et fonctions math matiques.

Exemple

alert(Math.E); // la valeur de e

alert(Math.PI); // la valeur de pi

alert(Math.min(5,12)); // 5

alert(Math.max(23,5,7,130,12)); // 130

alert(Math.ceil(25.3)); // 26

alert(Math.floor(25.8)); //25

alert(Math.random()); // valeur al atoire entre 0 et 1

var n = Math.floor(Math.random()*nb + min);

alert(n); // valeur al atoire entre min et min+nb (exclus)

D'autres fonctions:

Math.abs(x) Math.exp(x) Math.log(x)

Math.pow(x,y) Math.sqrt(x)

Math.sin(x) Math.cos(x) Math.tan(x)

Op rateurs

Typiquement, ceux de C, C++ et java:

ISET DE BIZERTE 2014-2015 | HTML5 5

TI1

incr mentation/d cr mentation (++, --)

arithm tiques (+,*,-,=,%)

relationnels (>,<,>=,<=,==,! =) et (===,! ==)

logique (!,&&,||)

affectation (=,+=,-=,*=,/=,%=)

Exemple

var age = 10;

age++;

alert(age); // 11

alert(age > 10 && age < 20); // true

alert(26 % 5); // 1

age*=2;

alert(age); // 22

Structures de contr le

Elles sont tr s proches de celles de langages tels que C, C++ et Java. Pour rappel, les structures

de contr les sont de trois types :

S quence : ex cution s quentielle d'une suite d'instructions s par es par un point-

Publicité

virgule

Alternative : structure permettant un choix entre divers blocs d'instructions suivant le

r sultat d'un test logique

Boucle : structure it rative permettant de r p ter plusieurs fois le m me bloc

d'instructions tant qu'une condition de sortie n'est pas av r e

Alternative

L'instruction if sans partie else :

if (condition) instruction;

if (condition) { instruction; }

if (condition) { instruction1; instruction2; ... }

Exemple

if (x >= 0) alert("valeur positive ou nulle");

...

if (note > 12 && note <= 14) {

alert("bravo");

mention="bien";

}

L'instruction if...else :

if (condition) instruction1;

else instruction2;

if (condition) {

instructions1;

} else {

instructions2;

}

if (condition1) {

instructions1;

} else if (condition2) {

instructions2;

} else {

instructions3;

}

ISET DE BIZERTE 2014-2015 | HTML5 6

TI1

Exemple

if (rank == 1)

medaille="or";

else if (rank == 2)

medaille="argent";

else if (rank == 3)

medaille="bronze";

L'op rateur ternaire ?:

Permet de remplacer une instruction if...else simple. Sa syntaxe (lorsqu'utilis e pour donner

une valeur une variable) est :

variable = condition ? expressionIf : expressionElse;

Elle est quivalente :

if (condition) variable=expressionIf;

else variable=expressionElse;

Exemple

var civilite = (sexe == "F") ? "Madame" : "Monsieur";

@

Cet op rateur est utile pour les expressions courtes.

L'instruction switch :

switch (expression) {

case valeur1 :

instructions1;

break;

case valeur2 :

instructions2;

break;

...

case valeurN :

instructionsN;

break;

default:

instructionsDefault;

}

@ Le branchement par d faut n'est pas obligatoire.

Boucle

L'instruction while :

while (condition) instruction;

while (condition) { instruction1; instruction2; ... }

Exemple

var num = 1;

while (num <= 5) { alert(num); num++; }

ISET DE BIZERTE 2014-2015 | HTML5 7

TI1

L'instruction for :

for (instructionInit; condition; instructionIter) instruction;

for (instructionInit; condition; instructionIter) { instruction1; instruction2; ... }

Exemple

for (var num = 1; num <= 5; num++) alert(num);

L'instruction do...while :

do {

instruction1;

instruction2;

...

} while (condition);

L'instruction for-in pour les objets :

for (var prop in window)

document.writeln(prop);

Certaines instructions permettent un contr le suppl mentaire sur les boucles :

break permet de quitter la boucle courante

continue permet de terminer l'it ration en cours de la boucle courante

Exemple

for (var i=0; i<5; i++) {

for (var j=0; j<5; j++) {

if ((i+j)%3 == 0)

continue;

for (var k=0; k<5; k++) {

if ((i+j+k)%3 == 0)

break;

alert(i + " " + j + " " + k);

}

}

}

Exercice

Publicité

Ecrire le code Javascript qui d termine si un nombre entier x est parfait.

@ Un nombre est parfait ssi il est gal la somme de ses diviseurs stricts.

6 est parfait car 6 = 1 + 2 + 3.

Object

ISET DE BIZERTE 2014-2015 | HTML5 8

TI1

Utilis pour stocker des donn es. Cr ation d'une variable (de type Object) avec new Object() ou

de mani re litt rale ( num ration entre accolades).

Exemple

var person = new Object();

person.name = "Julien";

person.age = 23;

//ou bien

var person = { name : "Julien", age : 23 }

@ Il est possible d'utiliser les crochets pour acc der un champ.

alert(person.name);

alert(person["name"]);

var field="name"; alert(person ); 35

Array

Les tableaux peuvent contenir des donn es de nature diff rente.

Exemple

var colors = new Array(); // tableau vide

var colors2 = new Array(20); // tableau avec 20 cases

var colors3 = new Array("red","blue","green"); // 3 cases

var colors4 = ["red","blue","green"]; // notation litt rale

@ Le champ length indique la taille d'un tableau.

var colors = ["red","blue","green"];

alert(colors.length); // 3

colors ="black"; // nouvelle couleur

colors[99]="pink";

alert(colors.length); // 100

alert(colors[50]): // undefined

colors.length=10; // plus que 10 cases

@ De nombreuses m thodes existent sur les tableaux.

Exemple

var colors = ["red","blue","green"];

alert(colors); // red,blue,green

alert(colors.join(";")); // red;blue;green

colors.push("black");

alert(colors); // red,blue,green,black

var item = colors.pop();

alert(item + " " + colors); // black red,blue,green

var item2= colors.shift();

ISET DE BIZERTE 2014-2015 | HTML5 9

TI1

alert(item2 + " " + colors); // red blue,green

@ Il existe d'autres m thodes telles que concat, slice et splice.

R -ordonner les tableaux

On peut utiliser reverse et sort.

Exemple

var values = [0, 1, 2, 3, 4];

alert(values.reverse()); // 4,3,2,1,0

values = [0, 1, 5, 10, 15];

alert(values.sort()); // 0,1,10,15,5

function compare(value1, value2) {

...

}

values = [0, 1, 5, 10, 15];

alert(values.sort(compare)); // 0,1,5,10,15

Exercice

Ecrire le corps de la fonction compare ci-dessus qui retourne -1 lorsque le premier argument

est inf rieur au second, +1 lorsque le premier argument est sup rieur au second, et 0 sinon.

Window

L'objet window repr sente la fen tre du navigateur.

Exemple

window.moveTo(0,0);

window.resizeTo(800,800);

var vW = window.open("http://www.isetb.tn","v");

if (vW == null) alert("fenetre bloquee");

else { ...

vW.close();

}

@ Le navigateur peut tre configur de mani re emp cher de modifier son emplacement, de

modifier sa taille ou encore d'afficher une fen tre pop-up.

Timer

Il est possible de programmer l'ex cution d'une m thode un instant donn ou des temps

r guliers gr ce setTimeout et setInterval.

Exemple

function helloWorld() { alert("hello world"); }

var id = setTimeout(helloWorld, 1000);

ISET DE BIZERTE 2014-2015 | HTML5 10

TI1

var num=0, max=4, intervalId = setInterval(incrementNumber,500);

function incrementNumber() {

if (++num == max) clearInterval(intervalId);

else alert(num);

}

@ Il est possible d'annuler avec clearTimeout et clearInterval.

Boites de dialogues

Des boites de dialogues peuvent tre ouvertes en utilisant les m thodes alert, confirm et

prompt.

Exemple

if (confirm("Voulez vous quitter?"))

alert("Au revoir");

else

alert(" Suite& ");

var name = prompt("What is your name?","Toto");

if (name != null)

alert("Welcome " + name);

ISET DE BIZERTE 2014-2015 | HTML5 11

TI1

Annexes : Les v nements

Les v nements

vont pouvoir donner

lieu une interactivit . Ce sont les gestionnaires d' v nements qui permettent d'associer une

action un v nement.

l'utilisateur, qui

Publicité

actions de

sont des

La syntaxe d'un gestionnaire d' v nement est la suivante :

onEvenement="Action_Javascript_ou_Fonction();"

@ Associer un v nement un l ment

Pour ce faire il suffit de mettre dans la balise le nom de l' v nement et de lui associ une

fonction

exemple :

<img src='une_image.jpg ' onclick='nom_de_lafonction(parametre1,parametre2)' />

On peut ex cuter plusieurs fonctions sur le m me v nement pour ce faire il suffit de rajouter

un point virgule.

<img src='une_image.jpg' onclick='fonction1() ; fonction2() ; fonction3()' />

@ Liste non exhaustive des v nements

Ev nement Description

Objets Associ s

onClick

onLoad

Lorsque l'utilisateur clique sur un bouton, un lien ou tout autre l ment. Button, document, Checkbox,

Link, Radio, Reset, Select,

Submit

Image, Layer, window

Lorsque la page est charg e par le browser ou le navigateur.

onUnload

Lorsque l'utilisateur quitte la page.

onMouseOver

onDragdrop

onMouseOut

mouseup

onMouseDown

onFocus

Lorsque l'utilisateur place le pointeur de la souris sur un lien ou tout

autre l ment.

lorsque

navigateur.

Lorsque le pointeur de la souris quitte un lien ou tout autre l ment.

l'utilisateur effectue un glisser-d poser sur

la fen tre du

Lorsqu un l ment de formulaire a le focus c- -d devient la zone

d'entr e active.

onBlur

Lorsquun l ment de formulaire perd le focus c- -d que l'utilisateur

clique hors du champs et que la zone d'entr e n'est plus active.

onChange

Lorsque la valeur d'un champ de formulaire est modifi e.

onSelect

onSubmit

onError

Lorsque l'utilisateur s lectionne un champ dans un l ment de

formulaire.

Lorsque l'utilisateur clique sur le bouton Submit pour envoyer un

formulaire

lorsqu'une erreur appara t durant le chargement de la page.

window

Area, Layer, Link

window

Layer, Link

Button, document, Link

Button, document, Link

Button, Checkbox,

FileUpload, Layer, Password,

Radio, Reset, Select, Submit,

Text, TextArea, window

Button,

Checkbox,

FileUpload, Layer, Password,

Radio, Reset, Select, Submit,

Text, TextArea, window

FileUpload, Select, Submit,

Text, TextArea

text, Textarea

Form

Image, window

ISET DE BIZERTE 2014-2015 | HTML5 12

TI1

onKeydown

lorsque l'utilisateur appuie sur une touche de son clavier.

onKeypress

lorsque l'utilisateur maintient une touche de son clavier enfonc e.

lorsque l'utilisateur rel che une touche de son clavier pr alablement

enfonc e.

lorsque l'utilisateur efface les donn es d'un formulaire l'aide du bouton

Reset.

lorsque l'utilisateur redimensionne la fen tre du navigateur

onKeyup

onReset

onResize

onAbort

dblclick

Image,

Link,

Image,

Link,

Image,

Link,

document,

TextArea

document,

TextArea

document,

TextArea

form

window

image

document, Link

ISET DE BIZERTE 2014-2015 | HTML5 13

On ins re normalement toutes les fonctions et initialisations dans le head de la page HTML (cela assure que les proc dures soient connues, avant d tre appel es). Exemple programme sayhello() qui permettra dafficher une petite fen tre avec le texte: \"Bonjour Tout le monde!!!\" Hello World avec JavaScript Script Externe Il est possible de mettre les portions de code dans un fichier externe. L'appel se fait via l'attribut SRC, plac dans la balise Script. Exemple ISET DE BIZERTE 2014-2015 | HTML5 2 TI1 Syntaxes D claration des variables En JavaScript les variables ne sont pas typ es. La d claration peut se faire dune mani re explicite gr ce au mot clef var ou dune mani re implicite. Exemple var i; //D claration de variable dune fa on explicite i = 2; chaine = \"bonjour\"; //D claration de variable dune fa on implicite bool = true; @ Les variables ne doivent pas tre des mots-clefs JavaScript : var, form, int, document, etc.. D finition des fonctions Une fonction est introduite par function. function nom(arg0, arg1, ..., argN) { //votre script. } //ou var nom = function (arg0, arg1, ..., argN) { //votre script. } Exemple return n1+n2; } function sum(n1, n2) { alert(sum(5,10)); //15 // ou bien var sum = function (n1, n2) { return n1+n2; }; alert(sum(5,10)); //15 Port e locale dune variable function test() { var message = \"hi\"; } test(); alert(message); // undefined Port e globale function test() { message = \"hi\"; } test(); alert(message); // \"hi\" Types ISET DE BIZERTE 2014-2015 | HTML5 3 TI1 Types Il y a principalement trois types classiques de donn es Boolean, Number, String et un type complexe Object (liste de couples nom-valeurs). Il est possible de d terminer le type (courant) d'une variable avec l'op rateur typeof qui retourne l'une des valeurs suivantes: undefined si la valeur est ind finie (variable d clar e mais pas initialis e ou variable non d clar e) boolean number string object si la valeur est un objet ou null function si la valeur est une fonction Conversions num riques Relatifs aux valeurs et conversions des nombres, on trouve 4 fonctions : isNaN d termine si un param tre donn n'est pas un nombre Number effectue une conversion parseInt effectue une conversion en valeur enti re parseFloat effectue une conversion en valeur r elle Exemple alert(isNaN(10)); // false alert(isNaN(\"10\")); // false - peut tre convertie alert(isNaN(\"blue\")); // true - ne peut tre convertie var num1 = Number(\"hello world\"); // NaN var num2 =","datePublished":"2015-04-20","keywords":"JavaScript, Brendan Eich, Mozilla Foundation, script integration, ISET de Bizerte, HTML5","inLanguage":"fr","url":"https://www.universitylib.com/fr/documents/introduction-to-javascript-11181195b3","isPartOf":{"@type":"WebSite","name":"UniversityLib","url":"https://www.universitylib.com/"}}