Bonjour. visiteurs jour : 234
Au président
Beauté santé
Infos loisirs
Ensemble
Jean
Informatique
Relativité
Relativity
Les joies de l'informatique et de l'internet !
Accueil - Disques - Excel - Informatique - Infos - Internet - Javascript - logiciels - Programation - Sites RJ - Vidéo - Plan du site -
Extraits de réintroduction à JavaScript par MOZILLA DEVELOPER NETWORK Les outils vraiment utiles pour les développeurs JavaScript sur Developpez.com JavaScript a été créé en 1995 par Brendan Eich, ingénieur chez Netscape. Microsoft a lancé une version globalement compatible, appelée JScript peu après. Contrairement à la plupart des langages de programmation, JavaScript n'a pas de concept d'entrée ou de sortie. Il est conçu pour s'exécuter comme un langage de script dans un environnement hôte qui fournit des mécanismes de communication avec le monde extérieur.
Number ◦Function 0.1 + 0.2 = 0.30000000000000004 Math.sin(3.5); Convertir une chaîne en un nombre entier à l'aide de la fonction intégrée patseInt() Elle reçoit la base de conversion comme second paramètre, que vous devez toujours fournir : parseInt("123", 10) -> 123 Si vous désirez convertir un nombre binaire en un entier, changez simplement la base : utiliser l'opérateur unaire + pour convertir des valeurs en nombres : + "42" -> 42 ! additionnez une chaîne à un nombre (ou une autre valeur), tout est d'abord converti en chaîne : "3" + 4 + 5 -> 345 (!) +"3"+4+5 -> 12 (+"3" a converti la chaine "3" en nombre : 3) Not a Number = NaN : parseInt("hello", 10) -> NaN NaN n'est pas un nombre, la preuve : isNaN(NaN) -> true 1 / 0 -> Infinity longueur d'une chaîne "hello".length -> 5 "hello, world".replace("hello", "goodbye") -> goodbye, world "HeLLO".toUpperCase() -> HELLO "HELLO".toLowerCase() -> hello "hello".charAt(0) -> h "hello".charAt(2) -> l var myString = String.fromCharCode(74, 97, 118, 97, 83, 99, 114, 105, 112, 116);
var date = "15/08/2000";
var jour = date.substring(0,2);
var mois = date.substring(3,5);
// date.substring(p1,p2); position du 1er et du dernier c à afficher+1(?) var annee = date.substring(6,10); chaine.indexOf(souschaine,debut) retourne l'indice de la première occurrence de souschaine ex : url="http://www.toutjavascript.com/magicmenu/index.html;
p2=url.substring(7,url.indexOf("/",7));
recherche le premier / après la 7eme position domaine=url.substring(7,url.indexOf("/",7)); domaine="www.toutjavascript.com";
p1=domaine.substring(domaine.lastIndexOf("."));
recherche de la dernière occurrence de '.'
var nom="Brendan Eich" si x=3 x+=5 -> 8 (c'est x = x+ 5) concaténer des chaînes : "Hello" + "World" -> "Hello World" var name = "des chatons"; } while (true) { for (var i = 0; i < 5; i++) { Opérateurs && et ¦¦ exécutent leur second opérande ou non selon la valeur du premier. C'est très utile pour vérifier qu'un objet n'est pas égal à null avant d'essayer d'accéder à ses attributs : créer un objet vide : var obj = new Object(); ou mieux var obj = {}; Puis lui affecter des propriétés : obj.name = "Simon"; ou obj["name"] = "Simon"; On peut créer l'objet et ses propriétés d'un coup : var obj = { var a = new Array(); a[0] = "chien"; a.length -> 3 Mieux : var a = ["chien", "chat", "poule", "canard"]; //ne pas terminer par une virgule ! Nota : a[100] = "renard"; -> a.length -> 101 (mais de 3 à 99 il n'y a rien): typeof(a[90]) -> undefined for (var i = 0; i < len; i++) { (a.length est toujours un de plus que l'index le plus grand) // identique à a.push(item); function add(x, y) { Attention : add(2, 3, 4) -> 5 // les deux premiers sont additionnés ; 4 est ignoré sans message d'erreur!!! for (var i = 0, j = arguments.length; i < j; i++) { add(2, 3, 4, 5) -> 14 moyenne(2, 3, 4, 5); -> 3.5 function moyenneTableau(arr) { var Ta=[2, 3, 4, 5]; moyenneTableau(Ta); -> 3.5 On peurt utiliser la premièrfe fonction moyenne en lui annonçant l'arrivée d'un tableau avec la méthode apply (les fonction sont aussi des objets) moyenne.apply(null,Ta); JavaScript permet également de créer des fonctions anonymes. var moyenne = function() { JavaScript permet d'appeler des fonctions récursivement Attacher des fonction à un objet. Comme les fonctions sont des objets, c'est facile : Informations sur le document original
Introduction à JavaScript
Les types JavaScript:
String (ce sont des objets avec des méthodes)
Boolean
Object
◦Array
◦Date
◦RegExp
Null
Undefined
il y a également quelques types d'erreursNombres en JavaScript
d = Math.PI * r * r;
parseInt("010", 10) -> 10
parseInt("11", 2) -> 3
-1 / 0 -> -Infinity
tester les valeurs Infinity, -Infinity et NaN à l'aide de la fonction intégrée isFinite() :
isFinite(1/0) -> false
isFinite(-Infinity) -> false
isFinite(NaN) -> falseLes chaînes
Les codes Unicode d'une chaine de caractères
Les sous chaines
Extraire des sous chaines
function verifiermail(mail) {
if ((mail.indexOf("@")>=0)&&(mail.indexOf(".")>=0)) {
return true
} else {
alert("Mail invalide !");
return false
}
}
function Remplace(expr,a,b) {
var i=0
while (i!=-1) {
i=expr.indexOf(a,i);
if (i>=0) {
expr=expr.substring(0,i)+b+expr.substring(i+a.length);
i+=b.length;
}
}
return expr
}
Les variables
Structures de contrôle
if (name == "des chiots") {
name += " ?!";
} else if (name == "des chatons") {
name += " Ok";
-> name -> "des chatons Ok"
// une boucle infinie !
}
do {
var input = get_input();
} while (inputIsNotValid(input))
// Sera exécutée cinq fois
}
var name = o && o.getName();
Ou pour définir des valeurs par défaut :
var name = otherName ¦¦ "default";
JavaScript propose également un opérateur ternaire conditionnelle en une ligne :
var permis = (age > 18) ? "oui" : "non";
Instruction switch
switch(action) {
case 'dessiner':
dessine();
break;
case 'manger':
mange();
break;
default:
nerienfaire();
}
L'instruction break stoppe l'exécution, son absence permet d'enchainer au niveau suivant. C'est rarement utilisé, préciser dans un commentaire si c'est délibérée.
Les objets
var name = obj.name; ou var name = obj["name"];
name: "Carotte",
"for": "Max",
details: {
color: "orange", size: 12
}
}
Les accès auxattributs peuvent aussi être chaînés :
obj.details.color -> orange
obj["details"]["size"] -> 12Les tableaux
a[1] = "chat";
a[2] = "poule";
a.length -> 4
len = a.length;
// Faire quelque chose avec a[i]
}
il est possible d'exprimer cela encore mieux :
for (var i = 0, item; item = a[i]; i++) {
// Faire quelque chose avec item
}
Une autre manière de parcourir un tableau est d'utiliser une boucle for...in. Notez que si quelqu'un ajoute d'autres propriétés à Array.prototype, elles seront également parcourues par cette boucle :
for (var i in a) {
// faire quelque chose avec a[i]
}
Ajouter un élément à un tableau : a[a.length] = item;
Les tableaux ont aussi un certain nombre de méthodes :
a.toString(), a.toLocaleString(), a.concat(item, ..), a.join(sep),
a.pop(), a.push(item, ..), a.reverse(), a.shift(), a.slice(start, end),
a.sort(cmpfn), a.splice(start, delcount, [item]..), a.unshift([item]..)
concat renvoie un nouveau tableau auxquels les éléments fournis ont été ajoutés.
pop retire et renvoie le dernier élément
push ajoute un ou plusieurs éléments à la fin du tableau
slice renvoie un sous-tableau
sort peut recevoir une fonction de comparaison optionnelle
splice permet de modifier un tableau en supprimant une partie et en la remplaçant par d'autres éléments
unshift insère des éléments en tête de tableau
Les fonctions
var total = x + y;
return total;
}
Par définition les fonctions ont accès à des variables supplémentaires à l'intérieur de leur corps, appelée arguments. Ce sont des objets semblables à un tableau qui conservent toutes les valeurs reçues par la fonction. Réécrivons la fonction add pour recevoir autant de valeurs qu'on veut :
function add() {
var somme = 0;
somme += arguments[i];
}
return somme;
}
function moyenne() {
var somme = 0;
for (var i = 0, j = arguments.length; i < j; i++) {
somme += arguments[i];
}
return somme / arguments.length;
}
La fonction moyenne() reçoit une liste de valeurs séparées par des virgules, mais si ce qu'on veut c'est trouver la moyenne des valeurs d'un tableau ?
var somme = 0;
for (var i = 0, j = arr.length; i < j; i++) {
somme += arr[i];
}
return somme / arr.length;
}
var somme = 0;
for (var i = 0, j = arguments.length; i < j; i++) {
somme += arguments[i];
}
return somme / arguments.length;
}
function countChars(elm) {
if (elm.nodeType == 3) { // TEXT_NODE
return elm.nodeValue.length;
}
var count = 0;
for (var i = 0, child; child = elm.childNodes[i]; i++) {
count += countChars(child);
}
return count;
}
...Objets personnalisés
function makePersonne(prenom, nom) {
return {
prenom: prenom,
nom: nom,
nomComplet: function() {
return this.prenom + ' ' + this.nom;
},
nomCompletInverse: function() {
return this.nom + ', ' + this.prenom;
}
}
}
s = makePerson("Simon", "Willison")
s.nomComplet() -> Simon Willison
s.nomCompletInverse() -> Willison, Simon
Auteur : Simon Willison
Date de dernière mise à jour : 7 mars 2006
Copyright : © 2006 Simon Willison, fourni sous la licence Creative Commons: Attribute-Sharealike 2.0.
Informations complémentaires : Pour plus d'informations à propos de ce tutoriel (et pour des liens vers les slides de la présentation originale), consultez le billet Etech du blog de Simon Willison.