Informatique


Compléments sur les types primitifs

Aller à

Généralités

En JS tout est objet, et donc de type object!

Et pourtant on parle de type primitifs.

En fait, les objets Number, String et Boolean possèdent une méthode qui les transforme en type primitif.
Cette méthode c'est valueOf.

JavaScript appelle la méthode valueOf pour convertir un objet en une valeur primitive..

Démo
<h2>Une jolie date</h2>
<script>
	var nom=new String("coucou");
	console.log(typeof nom); //affiche object
	nom=nom.valueOf();
	console.log( nom, typeof nom); //affiche le contenu et string
</script>

Quand on crée une variable qu'on affecte avec une valeur primitive, l'interpréteur construit l'objet correspondant et applique la méthode valueOf sur cet objet.

En conséquence, ces variables affectées avec un type primitif peuvent accéder aux méthodes de l'objet correspondant!


Quelques méthodes de l'objet Number

Arrondir à n décimale(s) avec toFixed()

Pour choisir le nombre de décimales, l'arrondi suit les règles mathématiques.

Démo
<script>
	var valeur=5.851963214;
	valeur=valeur.toFixed(2);
	document.write("Arrondi à 2 décimales: "+valeur);
</script>

Nombre de chiffres dans un nombre sans arrondir avec toPrecision()

Pour choisir le nombre total de chiffres dans le nombre, l'arrondi suit les règles mathématiques.

Démo
<script>
	var valeur=5.851963214;
	valeur=valeur.toPrecision(5);
	document.write("Cinq chiffres pour ce nombre: "+valeur);
</script>

Convertir en string avec toString()

Il suffit de préciser la base désirée dans les parenthèses de la méthode.

Démo
<script>
	var valeur=65897;
	valeur=valeur.toString(16);
	console.log(valeur);
</script>

La méthode toExponential

x (de 0 à 20) est un paramètre optionnel qui permet de choisir le nombre de chiffres de la partie décimale.

Démo
<script>
	var val=9632.548;
	val=val.toExponential(10)
	document.write(val);
</script>

On peut aussi directement exprimer les nombres exprimés sous la forme a.10n
On utilise la notation aen.

Démo
<script>
	var valeur=2e10;
	document.write("La valeur contenue dans la variable valeur: "+valeur);
</script>

L'ensemble des méthode disponibles

Il suffit de développer l'objet affiché dans la console.

Démo
<script>
	var valeur=new Number(5);
	console.log(valeur);
</script>

Quelques méthodes de l'objet String

La méthode IndexOf

La méthode IndexOf admet 2 arguments, la chaîne recherchée et un argument optionnel qui détermine la position à partir de laquelle la recherche doit se faire.

Cette méthode renvoie la position du premier caractère de la chaîne passée en paramètre.

Démo
<script>
	var phrase="Liberté, que de morts en ton nom!";
	var posi=phrase.indexOf("morts");
	document.write("Position: "+posi);
</script>

Les méthodes toLowercase(), toUpperCase() et trim()
Démo
<script>
	var nom="akbar", pren="LOUIS",profile;
	nom=nom.toUpperCase(); // en majuscules
	pren=pren.toLowerCase();	// en minuscules
	// on supprime les espaces avant et après avec trim()
	profile="Nom: "+nom.trim()+" Prénom: "+pren.trim(); 
	document.write(profile);
</script>

Le méthode split()

Cette méthode coupe une chaîne de caratères au niveau du caractère passé en paramètre et renvoie un tableau.
La méthode join() de l'objet Array permet l'opération inverse.

Si on passe en paramètre "" (sans espace!) on récupère tous les caractères de la chaîne dans le tableau.

Démo
<script>
	var phrase="Liberté, que de mort en ton nom!";
	phrase=phrase.split(" ");
	console.log(typeof phrase);
	console.log(phrase);
	for(let mot of phrase){
	document.write(mot);
	}
</script>

Les méthodes replace() et slice()

La méthode slice() et la méthode substr() fonctionnent de la même manière.

Démo
<script>
	var phrase="Liberté, que de morts en ton nom!",phrase1,extr;
	phrase1=phrase.replace("Liberté","Dieu");
	extr=phrase.slice(16,21);
	document.write(phrase+" <br> "+phrase1);
	document.write("On extrait du caractère 16 au 21: "+extr);
</script>

La propriété length

Cette propriété renvoie le nombre de caractères dans la chaîne.
On constate dans l'exemple qu'on peut parcourir une chaîne de caractères comme un tableau avec une boucle.

Démo
<script>
	var phrase="Liberté, que de morts en ton nom!",lg;
	lg=phrase.length;
	document.write("Nombre de caractères dans la phrase: "+lg+" caractères");
	for(let carac of phrase){
		document.write("<br>"+carac);
	}
</script>
L'ensemble des méthode disponibles

Il suffit de développer l'objet affiché dans la console.

Démo
<script>
	var valeur=new String("Coucou");
	console.log(valeur);
</script>

Quelques méthodes de l'objet Boolean

L'ensemble des méthode disponibles

Il suffit de développer l'objet affiché dans la console.

Démo
<script>
	var valeur=new Boolean(true);
	console.log(valeur);
</script>

L'objet Math()

L'objet Math() possède une série de propriétés et de méthodes.
Référence MDN ou Référence W3School

Pour arrondir à n décimales il faut utilser la méthode toFixed() de l'objet Number directement sur la variable contenant la valeur à arrondir.

Arrondir avec Math.floor(), Math.ceil() et Math.round()
Démo
<script>
	var valeur=5.851963214,v1,v2,v3;
	v1=Math.floor(valeur);
	v2=Math.ceil(valeur);
	v3=Math.round(valeur);
	document.write("Avec floor(): "+v1+"<br>");
	document.write("Avec ceil(): "+v2+"<br>");
	document.write("Avec round(): "+v3+"<br>"); //idem ceil()
</script>

Minimum, Maximum avec Math.max() et Math.min()
Démo
<script>
	var v1=1,v2=36,v3=-6,v4=8.5,maxi,mini;
	maxi=Math.max(v1,v2,v3,v4);
	mini=Math.min(v1,v2,v3,v4);
	document.write("le maximum: "+maxi,", le manimum: "+mini);
</script>

Exposant, racine carrée, nombre alléatoire avec Math.pow(),Math.sqrt(), Math.exp() et Math.random()
Démo
<script>
	var v1=5,exp=4,vi,p1,p2,p3;
	p1=Math.pow(v1,exp);
	p2=Math.sqrt(v1);
	p3=Math.exp(exp);
	vi=Math.random();
	document.write("Puissance de "+v1+"<sup>"+exp+"</sup> = "+p1 +"<br>");
	document.write("Racine carrée de "+v1 +"= "+p2 +"<br>");
	document.write("Puissance de e<sup>"+exp+"</sup> = "+p2+"<br>");
	document.write("Valeur alléatoire (entre 0 (inclus) et 1 (exclu)): "+vi);
</script>

Les propriétés PI et E
Démo
<script>
	var pipi, euler
	pipi=Math.PI;
	euler=Math.E;
	document.write("Nombre Pi: "+pipi + " Nombre d'Euler: "+euler);
</script>