Différences entre les versions de « JavaScript/Les fonctions »

aucun résumé de modification
(maintenance)
Avis aux retardataires : nous employons le mot fonction issue de classe par abus de langage car une fonction issue d'une classe est appelée une <u>méthode</u>.
 
Comme dit dans le second chapitre, la plupart des méthodes disponibles directement en JavaScript appartiennent à des '''ensembles'''. Ils en existe beaucoup, par exemple l'ensemble '''Math''' (appelé aussi la classe Math) regroupe un certain nombre de méthodes permettant de gérer les nombres. Il y a la classe '''Array''' étudiée précédemment, la classe '''Date''' permettant de gérer les dates.
beaucoup, par exemple l'ensemble '''Math''' (appelé aussi la classe Math) regroupe un certain nombre de méthodes permettant de gérer les nombres. Il y a la classe '''Array''' étudiée précédemment, la classe '''Date''' permettant de gérer les dates...
 
Attention cependant à ne pas confondre les ensemblesfonctions (ou classesméthodes) et les '''attributs'''. Par exemple, l'attribut <code>location</code> n'est pas une méthode de la classe document. C'est un attribut de document.
 
On écriraécrit donc <code>document.location = 'page.html';</code> ou encore <code>window.document.location = 'page.html';</code>
On écrit une méthode issue d'une classe JavaScript de cette façon : MaClasse.maMéthode().
 
Parfois, une fonction peut avoir deux "versions". Une version telle que vous en avez l'habitude (nom de la fonction et arguments entre parenthèses). Cependant, il existe aussi des fonctions dites "de prototype" qui ont le même rôle mais qui ne s'adapatent que qu'à un certain type d'arguments. Par exemple, la '''join''' dans le cadre d'un tableau JavaScript peut s'écrire :
 
<source lang="javascript">
==Première fonction==
 
Premièrement, pour déclarer une fonction il faut le mot clé <code>{{coloré|#000099|'''function'''}}</code> suivi du nom de notre fonction sans caractères spéciaux (pas d'espace, de virgule...). Puis, entre accoladeaccolades se trouvetrouvent les instructions de la fonction. Une fonction peut posséder des arguments (ou paramètres) qui sont des noms de variable à mettre entre parenthèses après le nom de la fonction et avant la première accolade et séparés par des virgules.
 
Pour commencer simplement, nous allons faire une petite fonction qui va simplement afficher la phrase "Bonjour tout le monde" un certain nombre de fois.
Voilà, notre fonction est écrite. Une précision : la fonction <code>parseInt()</code> permet de convertir une chaîne en un nombre.
 
Maintenant, comment se servir de notre fonction ??
 
<source lang="javascript">
===Retourner une valeur===
 
A présent, créons une fonction de calcul. Et... qui dit calcul dit aussi que nous allons devoir renvoyer une valeur. Pour cela, il y a le mot clé '''return''' qui comme son nom l'indique veut dire "retourner" en Anglaisanglais. Il est simplement suivi de la valeur à retourner.
 
Voici un exemple assez simple se servant de la librairie Math :
* '''<code>Math.pow</code>''' : il s'agit de la méthode permettant de mettre un nombre à un exposant (ici, le rayon est à l'exposant 3).
 
Ici, la fonction <code>volume_boule()</code> est donc de type <code>float</code> puisqu'elle renvoitrenvoie un nombre décimal. Cependant, on aurait pu la transformer en fonction <code>void</code> (qui ne retourne aucune valeur) en remplaçant le return par un <code>document.write()</code> ou un <code>alert()</code>.
 
===Travail pratique===
====Fonction de redirection====
Si vous vous sentez audacieux, vous pouvez tenter de coder une fonction simple de redirection en JavaScript. Si vous avez lu les chapitres précédents, tout est présent pour que vous puissiez y arriver. Cette fonction prendraprend deux arguments : l'URL (l'adresse Web) de redirection (de type String) et la demande de confirmation au visiteur (de type boolean).
 
====Corrigé====
</source>
 
Ici, rien de nouveau à part le <code>undefined</code> mais cette ligne était facultative. Elle permettait de rendre le paramètre "a_confirmer" facultatif. Désormais, vous savez comment faire une redirection en JavaScript. Mais je vous rassure : on pouvaispeut faire ça en une ligne :)
 
Une méthode qui pourrait vous servir, c'est <code>refresh()</code> de window qui permet de raffraîchir la page (équivalent de F5).
42

modifications