Utiliser les objets intégrés et les fonctions

Le langage JavaScript contient les objets intégrés et les fonctions suivantes:

Ces objets et leur propriétés ainsi que leurs procédures sont intégrées au langage. Vous pouvez utiliser ces objets aussi bien dans le client avec Netscape Navigateur, que dans le serveur avec LiveWire

Utiliser les Objets Chaînes

Toutes les fois que vous assignez une chaîne à une variable ou une propriété, vous créez un objet chaîne. Les chaînes seules sont aussi des objets chaînes. Par exemple

machaine = "Salut tout le monde"

crée un objet chaîne appelé machaine.

L'objet chaîne a des procédures qui renvoient:

Par exemple, pour l'objet ci-dessus, machaine.toUpperCase() retourne "SALUT TOUT LE MONDE", de même pour "salut tout le monde".toUpperCase().

Utiliser l'objet math

L'objet intégré Math a des propriétés et des procédés pour les constantes mathematiques et les fonctions. Par exemple, la propriété de l'objet math PI a pour valeur PI, que vous utiliserez dans une application comme suit:

Math.PI

Pareil pour les fonctions mathematiques standards et les procédures de math. Celles-ci incluent la trigonometrie, les logarithmes, les exponentiels et les autres fonctions. Par exemple, si vous voulez utiliser la fonction trigonometrique SINUS, vous devrez écrire:

Math.sin(1.56)

Notez que toutes les procédures trigonometriques prennent les arguments en radians.

Il est souvent utile d'utiliser with quand une partie de code utilise plusieures procédures et constantes mathematiques, pour ne pas avoir à taper math tout le temps. Par exemple:

with (Math) {
   a = PI * r*r;
   y = r*sin(theta)
   x = r*cos(theta)
}

Utiliser l'objet date

JavaScript n'a pas de type de données pour les dates. Par contre, l'objet date et ses procédures vous permettent de travailler avec les dates et les heures dans vos applis. L'objet date a un grand nombre de procédures pour définir, obtenir et manipuler les dates. Cet objet n'a aucune propriété.

JavaScript utilises les dates trés similairement à Java. Les deux angages ont les mêmes procédures, ainsi que le stockage des dates en nombre de millisecondes depuis le premier janvier 1970 à 00:00:00.

NOTE: Pour le moment vous ne pouvez pas travailler avec des dates anterieures au premier janvier 1970.

Pour créer un objet date:

NomVar = new Date(parametres)

ou NomVar est le nom de la variable JavaScript pour l'objet date créé; cela peut-être un nouvel objet, ou une propriété d'un objet existant.

Les paramètres pour le constructeur de Date peuvent-être une de celles-ci:

L'objet date a un grand nombre de procédures pour utiliser les dates et les heures. Ces procédures sont classées dans ces actégories:

Les procédures "get" et "set" vous permetent d'obtenir et de définir les secondes, les minutes, les heures, le jour du mois, le jour de la semaine, les mois et les années séparement. Il y a une procédure getDay qui retourne le jour de la semaine, mais qui ne correspond pas à la procedure setDay, parceque le jour de la semaine est défini automatiquement. Ces procédures utilisent des nombres entiers pour representer ces valeurs, comme ceci:

Par exemple, supposez que vous définnissez une date:

Noel95 = new Date("Decembre 25, 1995")

Ensuite Noel95.getMonth() retourne 11, et Noel95.getYear() retourne 95.

Les procédures getTime et setTime sont utiles pour comparer les dates. La procedure getTime retourne le nombre de millisecondes depuis la création de l'objet date.

Par exemple, le code suivant affiche le nombre de jours d'achats restant avant noël

aujourdhui = new Date()
NoelSuivant = new Date("December 25, 1990")
NoelSuivant.setYear(aujourdhui.getYear())
msPerDay = 24 * 60 * 60 * 1000 ; // Number of milliseconds per day
joursRestant = (NoelSuivant.getTime() - aujourd'hui.getTime()) / msPerDay;
joursRestant = Math.round(joursRestant);
document.write("Attention, plus que " + daysLeft"" jours avant noel pour faire vos achats");

Cet example crée un objet date nommé ajourdhui qui contient la date d'aujourd'hui. Ensuite, il crée un autre objet date nommé NoelSuivant, et définit sa date au 25 décembre, ainsi qu'à l'année de la date de l'objet aujourdhui. Ensuite, l'objet msPerDay calcule le nombre de millisecondes par jour. Enfin, il calcule la difference entre le jour d'ajourd'hui et noël, qui est retourné par javascript en millisecondes. C'est à ce moment là que nous sert msPerDay: on divise la difference NoelSuivant - aujourdhui par la fonction msPerDay. Cela nous retourne le nombre de jours avant noël, que l'on arrondi avec la fonction Math.round(joursRestant). La phase finale est l'affichage avec document.write("votre texte, bla bla bla..." + joursRestant).

La procédure parse est utile pour asigner des valeurs de chaînes de dates à des objets date existants. Par exemple, le code suivant utilise les procedures parse et setTime pour assigner une date à l'objet IPOdate.

IPOdate = new Date()
IPOdate.setTime(Date.parse("Aug 9, 1995"))

Utiliser les fonctions intégrées

Plusieures fonctions sont intégrées au langage JavaScript. Ce sont:

La fonction Eval

La fonction intégrée eval ptrend comme argument une chaîne. Cette chaîne peut-être n'importe quelle chaîne representant un expression, une déclaration ou une séquence de déclarations. Cette expression peut inclure des variables et des propriétés d'objet existants.

Si l'argument represente une expression, eval évalue cette expression. Si l'argument represente une ou plus d'une déclaration, eval éxecute cette déclaration.

Cette fonction est utile pour évaluer une chaîne representant une expression arithmetique. Par exemple, une insertion de texte de l'utilisateur dans un formulaire est toujours une chaîne, mais vous voudrez souvent les convertir à une valeur numerique.

L'éxemple suivant prend un texte dans un formulaire, applique la fonction eval, et affiche le résultat dans une autre case du formulaire. Si vous tapez une valeur numerique dans la premiere case, et cliquez sur un bouton, l'expression sera évaluée. Par exemple, entrez "(666 * 777) / 3", et cliquez sur le bouron pour voir le resultat.

<SCRIPT>
function calcule(obj) {
   obj.result.value = eval(obj.expr.value)
}
</SCRIPT>
<FORM NAME="evalform">
Entrez une expression: <INPUT TYPE=text NAME="expr" SIZE=20 >
<BR>
Resultat: <INPUT TYPE=text NAME="result" SIZE=20 >
<BR> 
<INPUT TYPE="button" VALUE="Cliquez-moi" onClick="calcule(this.form)">
</FORM>

Entrez une expression:
Resultat:

La fonction eval ne se cantonne pas à évaluer des expressions numeriques, au contraire. Ses arguments peuvent inclure res réferences d'objets ou encore des déclarations JavaScript. Par exemple, vous pourriez définir une fonction appelée setValue qui interpreterait deux arguments: un objet et une valeur, comme ceci:

 function setValue (monobj, mavaleur) {
   eval ("document.forms[0]." + monobj + ".value") = mavaleur;
 }

Ensuite, par exemple, vous pourriez appeler cette fonction pour définir la valeur d'un élement d'un formulaire appelé "text1" comme suit:

setValue(text1, 42)

Les fonctions parseInt et parseFloat

Ces deux fonctions intégrées retournent une valeur nuymerique quand une chaîne est donnée comme argument.

ParseFloat analyse son argument, une chaîne, et retourne un nombre à virgule flotante. S'il rencontre un autre charactere qu'un signe ( + ou -), un nombre (0-9), un décimal ou un exponentiel, il retourne la valeur du charactere precedent, et ignorera ce caractere non reconnu, ainsi que tous les suivants. Si le premier caractere ne peut etre converti en nombre, il retourne la valeur NaN.

La fonction parseInt analyse son premier argument, une chaîne, et essaye de retourner un nombre entier de la base spécifiée. Par exemple, une base de 10 indique de convertir en un nombre décimal, 8 (octal), 16 (hexadecimal), etc. Pour des bases au dessus de 10, les lettres de l'alphabet indiquent des nombres plkus grand que 9. Par exemple, pour les nombres héxadécimauc (base 16), A jusqu'à F sont utilisés.

Si parseInt rencontre un caractere qui n'est pas un nombre dans la base spécifiée, il l'ignore ainsi que tous les caracteres suivants, et retourne l'entier du nombre précedent. Si le premier caractere ne peut-être converti, il retourne NaN. ParseInt troncque les nombres décimaux.