Auteur: Ludovic PATEY

Publié le 19 février 2008

Modifié le: 19 février 2008

Page d'accueil

La classe Math

Vous êtes ici : Accueil / Cours / Cours de Javascript / Progresser en Javascript

Particularité de la classe Math

La classe Math ne possède pas de constructeur, donc il n’est pas possible de l’instancier. Toutes ses propriétés et méthodes sont statiques. Ainsi, pour appeler chaque propriété ou méthode, il sera nécessaire de la préfixer par le nom de la classe. Exemple :

// Retourne une erreur :
var m = new Math();

// Retourne une erreur :
alert( 5.max( 7 ) );

// Affiche 7
alert( Math.max( 5, 7) );

Propriétés de la classe Math

PropriétéR/WDescription
Math.ERRetourne le nombre d’Euler : 2.718281828459045 ( approximation )
Math.LN2RRetourne le logarithme néperien de 2 : 0.6931471805599453 ( approximation )
Math.LN10RRetourne le logarithme néperien de 10 : 2.302585092994046 ( approximation )
Math.LOG2ERRetourne le logarithme en base de 2 du nombre de Néper : 1.4426950408889634 ( approximation )
Math.LOG10ERRetourne le logarithme en base de 10 du nombre de Néper : 0.4342944819032518 ( approximation )
Math.PIRRetourne le nombre PI : 3.141592653589793 ( approximation )
Math.SQRT1_2RRetourne la racine carrée de 1/2 : 0.7071067811865476 ( approximation )
Math.SQRT2RRetourne la racine carrée de 2 : 1.4142135623730951 ( approximation )

Méthodes de la classe Math

MéthodeDescription
float Math.abs( float )Retourne la valeur absolue du nombre.
float Math.acos( float )Retourne l’Arccosinus en radians du nombre
float Math.asin( float )Retourne l’Arcsinus en radians du nombre
float Math.atan( float )Retourne l’Arctangente en radians du nombre
float Math.atan2( float, float )Retourne l’Arctangente en radians du quotient de ses arguments
int Math.ceil( float )Retourne l’entier supérieur du nombre
float Math.cos( float )Retourne le cosinus de l’angle
float Math.exp( float )Retourne l’exponentielle.
int Math.floor( float )Retourne l’entier inférieur du nombre
float Math.log( float )Retourne le logarithme naturel du nombre.
float Math.max( [float,...] )Retourne le maximum des arguments.
float Math.min( [float,...] )Retourne le minimum des arguments.
float Math.pow( float m, float n )Retourne le premier nombre à la puissance du second : mn
float Math.random()Retourne un nombre pseudo-aléatoire entre 0 et 1, le 1 n’étant pas compris
int Math.round( float )Arrondit à l’entier le plus proche.
float Math.sin( float )Retourne le sinus de l’angle
float Math.sqrt( float )Retourne le racine carrée du nombre.
float Math.tan( float )Retourne la tangente de l’angle

Le mot-clé with

Lorsque vous avez un certain nombre de calculs mathématiques, l’écriture Math.maMéthode() peut s’avérer lourde. Pensez à utiliser le mot-clé with :

with( Math ) {

       var a = cos( 45 );
       var b = max( 5, 7 );

}

// Equivalent de

var a = Math.cos( 45 );
var b = Math.max( 5, 7 );

Générer un nombre aléatoire entre m et n

Voici une implémentation de la fonction à partir de la fonction Math.random() :

Math.rand = function( m, n ) {

       return m + this.floor( this.random() * ( n - m + 1 ) );

}

Ajouter la précision de l’arrondi

Comme vous l’avez vu, l’arrondi est à l’entier le plus proche. Il peut arriver que vous vouliez arrondir au 1/10 près ou autre. Voici une petite modification de la classe Math qui permettra de rajouter un paramètre optionnel de précision :

// Sauvegarde de la méthode Math.{round}() dans une autre méthode
Math._round = Math.round;

// Création de la nouvelle méthode
Math.round = function( m, n ) {

       // S'il n'y a qu'un paramètre
       if( !n ) {
               // Retourner son arrond
               return this._round( m );
       }
       else {
               // Calculer la puissance de 10 pour le décalage
               var pow = this.pow( 10, n );

               // Arrondi du nombre décalé du nombre de digits voulu, puis redécalage
               return this._round( m * pow ) / pow;
       }

}

Commentaires

Auteur :

Message :