Sorry, your browser doesn't support Java(tm). Hit-Parade

Qu'est-ce qu'une fonction?
Les fonctions Microsoft JScript réalisent des actions. Elles renvoient aussi des résultats qui sont souvent issus de calculs ou de comparaisons.

Ces fonctions combinent plusieurs opérations sous un seul nom, ce qui vous permet d'épurer votre code. Vous pouvez ainsi écrire un jeu d'instructions, lui donner un nom, puis l'exécuter intégralement à tout moment. Pour ce faire, il vous suffit de l'appeler et de lui fournir toutes les informations nécessaires.

Pour transmettre des informations à une fonction, il convient de les indiquer entre parenthèses à la suite du nom de la fonction. Ces éléments informatifs s'appellent arguments ou paramètres. Certaines fonctions acceptent un ou plusieurs arguments, d'autres n'en acceptent aucun. Dans certains cas, c'est le mode d'utilisation de la fonction qui détermine le nombre d'arguments acceptés.

JScript gère deux types de fonctions: les fonctions intégrées au langage et les fonctions que vous créez.

 

Fonctions intégrées spécifiques
Le langage JScript comprend plusieurs fonctions intégrées. Certaines vous permettent de gérer des expressions et des caractères spéciaux, et convertissent des chaînes en valeurs numériques.

Par exemple, les fonctions escape() et unescape() permettent de convertir des caractères dont la signification est particulière au code HTML, comme des caractères que vous ne pouvez pas insérer directement dans du texte. Par exemple, les crochets pointus, "<" et ">", délimitent les balises HTML.

La fonction escape reconnaît ces caractères spéciaux comme étant des arguments et, par conséquent, renvoie le code escape correspondant. Chaque code escape comprend un signe pourcentage (%) suivi d'un nombre à deux chiffres. La fonction unescape fait exactement l'inverse. Elle prend comme argument une chaîne comprenant un signe pourcentage et un nombre à deux chiffres, et renvoie un caractère.

La fonction intégrée eval() est également très utile. Elle évalue toute expression mathématique valide présentée sous forme de chaîne et accepte un argument: l'expression à évaluer.

 


var anExpression = "6 * 9 % 7";
var total = eval(anExpression);        // Affecte la valeur 5 au total des variables.
var yetAnotherExpression = "6 * (9 % 7)";
total = eval(yetAnotherExpression)        // Affecte la valeur 12 au total des variables.

var totality = eval("...entouré d'âcres de clams.");        // Génère une erreur.
Fonctions personnalisées
Vous pouvez créer vos propres fonctions et les utiliser au besoin. La définition d'une fonction se compose d'une instruction de fonction et d'un bloc d'instructions JScript.

La fonction checkTriplet de l'exemple suivant prend comme arguments la longueur des côtés d'un triangle et calcule s'il s'agit d'un triangle rectangle en vérifiant si les trois nombres sont conformes au théorème de Pythagore (le carré de l'hypoténuse d'un triangle rectangle est égal à la somme des carrés des deux côtés opposés). La fonction checkTriplet appelle l'une des deux autres fonctions pour effectuer la vérification.

Notez l'utilisation d'un nombre infime ("epsilon") comme variable de test dans la version à virgule flottante de la vérification. En raison des incertitudes et des erreurs d'arrondi dans les calculs à virgule flottante, il est impossible de tester directement si le carré de l'hypoténuse est égal à la somme des carrés des côtés opposés, à moins que les trois valeurs en question soient des entiers. Comme le test direct est plus précis, le code de cet exemple détermine si ce test est approprié avant de l'appliquer.

 


var epsilon = 0.0000000000001;  // Nombre infime comme référence.
var triplet = false;

function integerCheck(a, b, c)  {  // Fonction de test pour les entiers.
    if ( (a*a) == ((b*b) + (c*c)) )  {  // Le test même.
    triplet = true;
    }
}  // Fin de la fonction de test pour les nombres entiers.

function floatCheck(a, b, c)  {  // Fonction de test pour nombres à virgule flottante.
var theCheck = ((a*a) - ((b*b) + (c*c)))  // Calcule le résultat.
    if (theCheck < 0)  {  // Le test requiert la valeur absolue; prend l'inverse si theCheck est négatif.
    theCheck *= -1;
    }
    if (epsilon > theCheck)  {  // Si proche, on n'est pas loin du compte!
    triplet = true;
    }
}  // Fin de la fonction de test pour les nombres à virgule flottante.


function checkTriplet(a, b, c)  {  // Vérification du théorème. Place le côté le plus long en position "a".
var d = 0;  // Crée une corbeille temporaire.
    if (c > b)  {  // Si c > b, les inverse.
    d = c;
    c = b;
    b = d;
    }  // Sinon, les ignore.
    if (b > a)  {  // Si b > a, les inverse.
    d = b;
    b = a;
    a = d;
    }  // Sinon, les ignore.

// Côté "a" est maintenant l'hypoténuse, s'il y en a une.

    if (((a%1) == 0) && ((b%1) == 0) && ((c%1) == 0))  {  // Vérifie les trois valeurs. Est-ce des entiers?
    integerCheck(a, b, c);  // Si oui, utilise le test précis.
    }
    else
        floatCheck(a, b, c);  // Si non, s'approche autant que possible.
}  // Fin de la fonction de vérification du théorème.


// Les trois instructions suivantes affectent des valeurs de test.
var sideA = 5;
var sideB = 5;
var sideC = Math.sqrt(50);

checkTriplet(sideA, sideB, sideC);  // Invoque la fonction. Après invocation, affiche le résultat.
 

 


Hosted by www.Geocities.ws

1