Encodage, encore et toujours

19  Download (0)

Full text

(1)

Javascript

Stefan Monnier IFT-1005 1

(2)

Javascript

Langage de programmation fonctionnel et orient ´e objet Pr ´esent dans la majorit ´e des navigateurs web

Permet de manipuler

Le contenu d’une page web une fois charg ´ee

Certaines parties du browser

Valider les champs d’un formulaire Et ce, depuis la page elle-m ˆeme

(3)

Inclusion dans une page web

Par l’interm ´ediaire de balises script

Autant dans le head que le body

<script src="{URL}" />

ou

<script> {code-javascript} </script>

L’attribut type est text/javascript par d ´efaut

D’autres valeurs peuvent sp ´ecifier une version particuli `ere de Javascript Ou d’autres langages, selon le navigateur

Stefan Monnier IFT-1005 3

(4)

Encodage, encore et toujours

Comment inclure un ‘<’ dans le script?

Bien s ˆur, m ˆeme question pour l’ ´el ´ement style

(5)

Encodage, encore et toujours

Comment inclure un ‘<’ dans le script?

Bien s ˆur, m ˆeme question pour l’ ´el ´ement style

C¸ a d ´epend! En XML ou HTML?

Stefan Monnier IFT-1005 4

(6)

Encodage, encore et toujours

Comment inclure un ‘<’ dans le script?

Bien s ˆur, m ˆeme question pour l’ ´el ´ement style

C¸ a d ´epend! En XML ou HTML?

En HTML, un ‘<’ fonctionne tr `es bien En XML, il faut utiliser ‘&lt;

¡ Mais ‘&lt;’ ne fonctionne pas en HTML !

(7)

Le monde merveilleux des hacks

Mettre un ‘<’ dans un script ou style

Qui fonctionne autant avec XML qu’avec HTML Il nous faut CDATA et des commentaires

<![CDATA[...]]> (en XML) permet d’inclure du texte avec ‘<’, ‘&

<![CDATA[<]]> est ´equivalent `a &lt;

Stefan Monnier IFT-1005 5

(8)

Le monde merveilleux des hacks

Mettre un ‘<’ dans un script ou style

Qui fonctionne autant avec XML qu’avec HTML Il nous faut CDATA et des commentaires

<![CDATA[...]]> (en XML) permet d’inclure du texte avec ‘<’, ‘&

<![CDATA[<]]> est ´equivalent `a &lt;

<script>

//<![CDATA[

...my script..

//]]>

</script>

(9)

Calculs en Javascript

var x1 = 5 + 6;

var x2 = x1 * 7;

var x3 = x2 - 6 / x1;

Stefan Monnier IFT-1005 6

(10)

Abstraire un calcul

var pi = 3.141592653589793;

function diameter (radius) { return radius * 2;

}

function circumference (radius) { return diameter(radius) * pi;

}

function area (x, y) { return x * y;

}

(11)

Chaˆınes de caract `eres

var name = "BuGit";

var version = 32;

var fullname = name + "-" + String(version);

var fn_length = fullname.length;

Encodage, comme toujours

Stefan Monnier IFT-1005 8

(12)

Expressions r ´eguli `eres

var re = /b(.*)t/i;

var match_data = fullname.match(re);

var matched_string = match_data[0];

var matched_subgroup = match_data[1];

(13)

Op ´erateurs de RegExp

re* R ´ep ´etition 0 ou plus re? 0 ou 1 fois

re+ R ´ep ´etition 1 ou plus

re1|re2 Accepte autant l’un que l’autre

[chars] N’importe lequel de ces caract `eres

chars] N’importe quel autre caract `ere

(re) Sous-groupe

Note: autre encodage d’une structure arborescente

Stefan Monnier IFT-1005 10

(14)

Objets

var bugit_descriptor = { name: "BuGit",

version: 32,

URL: "http://gitlab.com/monnier/bugit"

};

var bd = bugit_descriptor;

var n = bd.name;

bd.name = "Anonymous";

(15)

Constructors

function SoftDesc (name, version, URL) { this.name = name;

this.version = version;

this.URL = URL;

}

var bd = new SoftDesc ("BuGit", 32,

"http://gitlab.com/monnier/bugit")

Stefan Monnier IFT-1005 12

(16)

Constructors

function SoftDesc (name, version, URL) { this.name = name;

this.version = version;

this.URL = URL;

}

var bd = new SoftDesc ("BuGit", 32,

"http://gitlab.com/monnier/bugit") this: mot-cl ´e sp ´ecial qui contient “l’object courant”

(17)

M ´ethodes

function SoftDesc (name, version) { this.name = name;

this.version = version;

this.fullname = function () {

return this.name + "-" + this.version;

} }

var bd = new SoftDesc ("BuGit", 32);

var bfn = bd.fullname()

Stefan Monnier IFT-1005 13

(18)

D ´el ´egation

function SoftDesc (name, version) { this.name = name;

this.version = version;

}

SoftDesc.prototype.fullname = function () { return this.name + "-" + this.version;

}

var bd = new SoftDesc ("BuGit", 32);

var bfn = bd.fullname()

(19)

Fonctions Javascript

Plus complexes qu’il n’y paraˆıt Peuvent ˆetre utilis ´ees comme

Fonction

Constructeur

M ´ethode

Objet

Y compris tout `a la fois!

Stefan Monnier IFT-1005 15

Figure

Updating...

References

Related subjects :