Premiers pas en JavaScript
8.2 Paramètres facultatifs d'une fonction
cuy copyleft
  See You Why?  

 


fonctions à paramètres multiples (8.1) | | exercices relatifs aux fonctions avec paramètres multiples (8.8)

Contenu

 

 

I. Paramètres multiples

voir <<< séquence précédente

 

II. Paramètres facultatifs des fonctions

On a vu dans les séquences précédentes que l'on pouvait définier des fonctions sans arguments ou paramètres, ou des fonctions à un paramètres, voire même des fonctions à plusieurs paramètres.

Imaginons ici la création d'un script qui arrondisse une valeur. Le chapitre 12, relatif aux opérateurs mathématiques, ne vous apportera pas d'aide... la séquence 34.2, qui traite des méthodes de l'objet mathématique, va vous montrer que :
* Math.ceil(1.357)
   renvoie la valeur 2,
   car 2 est le plus petit entier supérieur ou égal à 1.357 ;
* Math.floor(13.57)
   renvoie la valeur 13,
   car 13 est le plus grand entier inférieur ou égal à 13.57 ;
* Math.round(-13.57)
   renvoie la valeur -14,
   car -14 est l'entier le plus proche de -13.57 qui est compris entre -14 et -13.

Magnifique, pour arrondir il me suffira d'employer Math.round(valeur)... Malheureusement non, car ces trois méthodes ci-dessus ne renvoient que des entiers et notre but est de pouvoir arrondir toute valeur avec 0, 1 voire 2 ou 4 chiffres après la virgule...

 

A. Une fonction à deux paramètres

Il nous suffira donc de définir une fonction qui devra avoir 2 paramètres, à savoir :
d'une part la valeur à arrondir,
d'autre part la précision que l'on souhaite obtenir (exprimée en nombre de chiffres souhaités).
Voilà donc notre fonction à deux paramètres qui prend forme :

function arrondir(valeur, precision){
}
 

Plus que trois informations à traiter et le problème sera résolu :

      1. on se rappellera que 10 = 101, que 100 = 102, que 1000 = 103, etc.
        et que le chiffre après la virgule indique des dixièmes, que deux chiffres après la virgule indique des centièmes, etc.
      2. donc pour arrondir à p chiffres après la virgule, on mutiplie par 10p, on arrondit ce produit à l'unité et enfin on divise cet entier arrondi par ce même 10p ;
      3. et notre rapide visite dans la séquence 34.2 nous a permis de découvrir que 10p se notera Math.pow(10,p).

Et le tour est joué... il ne reste qu'à traduire en lagage JS...

function arrondir(valeur, precision){
   provisoire = Math.pow(10,precision);
   alert(Math.round(valeur*provisoire)/provisoire);
}
 

 

 

B. Une fonction à un paramètre facultatif

Lorsque vous parlez de paramètre facultatif, vous voulez dire paramètre optionnel ? paramètre non obligatoire ? Mais si on n'affecte aucune valeur à ce paramètre, la fonction ne pourra jamais s'exécuter !
Erreur, en JS, une fonction peut s'exécuter valablement, contrairement à de nombreux langages, même si tous ses paramètres ne sont pas définis.

Il suffira de les nommer dans la définition de la fonction et de ne pas oublier de tester l'existence de ces paramètres dans la fonction.

Pour une question de facilité, on pourrait imaginer notre fonction arrondir() pour laquelle on ne stipule pas la précision... il suffirait alors de définir une valeur de 3 par défaut, si aucune autre valeur n'a été donnée, ou une valeur de 2 chiffres après la virgule s'il s'agit de prix.

Le chapitre 14 vous expliquera en détail comment soumettre des instructions à une condition. Retenez pour l'instant la structure
si (condition) {
   faire()
}

et en JS on notera if à la place de si .

Notre script retravaillé ci-dessous sera donc identique à celui développé ci-dessus, sauf qu'il permettra de ne pas définir le paramètre précision qui prendrait la valeur 3 si aucun autre argument ne lui a été donné :

function arrondir(valeur, precision){
   if ( typeof(precision) == 'undefined' ) {
      precision = 3;
   }
   provisoire = Math.pow(10,precision);
   alert(Math.round(valeur*provisoire)/provisoire);
}
 

Attention cependant, rappelons-nous qu'une variable est de type 'undefined' en JavaScript, si et seulement si elle n'a jamais été déclarée ou n'a jamais été affectée d'aucune valeur...
et que la fonction prompt() reçoit par défaut une valeur de type variable string... et que ne rien répondre renvoie une chaine vide ou "".

 

VIII. Exercices relatifs aux fonctions (à plusieurs paramètres)

voir suite >>>

 

 

IX. Test relatif aux fonctions (à plusieurs paramètres)

voir suite >>>

 

 


fonctions à paramètres multiples (8.1) | | exercices relatifs aux fonctions avec paramètres multiples (8.8)

 

 

Merci de votre visite à partir de :

Vous êtes sur :
https://cuy.be/cours/jvs/jvs_082_param_facultat_fonction.html

partager sur FaceBook...           consulter sur FaceBook...

 

copyleft
Des liens ne fonctionnent plus ?
Avez-vous des suggestions ?
des commentaires, des corrections, un encouragement... ?
Pour info : Non, il n'y a pas de version papier ou DOC, PDF, etc. de ces notes.


Envoyez-moi un E-Mail (cuy(point)w(at)skynet(point)be)

Attention (at) signifie @ et (point) signifie .

Accueil CUY = See you why?

Compteur gratuitEasyCounter     BelStat Monitored by BelStat - Your Site Counts
La 1 000 000e page a été visitée le 21 mai 2010.
La 2 000 000e page a été visitée ce 18 mars 2012, vers midi.
La 3 000 000e page a été visitée ce 7 janvier 2014 entre 18 h et 18 h 45,
La 4 000 000e page a été visitée ce 5 juin 2015 entre 15 h 49 et 15 h 52,
La 5 000 000e page a été visitée ce 29 aout 2017 après 23 h 30,
Et la 6 000 000e page visitée, trop tôt pour y penser ?
 
et, d'après BelStat, CUY est visité surtout en semaine, peu le weekend...
moins et irrégulièrement pendant les vacances :

visites sur 3 mois, de la mi octobre 2013 à la mi janvier 2014.
 
La 3 333 333e page visitée a eu lieu ce mardi 10 juin 2014, en début d'après midi...
La 3 666 666e page visitée a eu lieu ce dimanche 28 decembre 2014, vers 16 h...
Un tiers de million de pages visitées en 154 jours cela fait une moyenne de 2165 pages visitées par jour...
Deux tiers de million de pages visitées en 355 jours soit une moyenne de 1878 pages visitées par jour...
et seulement 1195 pages visitées quotidiennement pendant les vacances estivales
de la mi juin à la mi septembre 2014

Vous voulez lire quelques messages reçus ?
quelques encouragements ?
Cliquez ici


Fin septembre 2009, installation de ce compteur
qui ne compte chaque nouvel ordinateur visiteur qu'une seule fois
free counter
 
m-à-j du 22/11/2021 :

Depuis cette fin septembre 2009, parmi les 210 pays (sur 274 drapeaux connus) qui nous ont visité,
voici les 100 pays qui nous visitent le plus, 
Nos petits visiteurs, classés par date de visite, où un seul ordi nous a visité, sont :
199. Turkmenistan (TM May 10, 2017) ; 200. Lesotho (LS March 1, 2017) ;
201. Turks and Caicos Island (TC January 18, 2016
202. Cook Islands (CK September 19, 2015)  203. Faroe Islands (FO January 27, 2015
204. Virgin Islands American (VI November 12, 2014) ;
205. Belize (BZ September 29, 2014) ;206. Eswatini - Swaziland (SZ July 21, 2014) ;
207. Grenada (GD April 3, 2014) ; 208. Timor-Leste (TI March 29, 2014) ;
209. American Samoa (AS December 26, 2012) ; 210. Guyana (GY November 5, 2010).