Premiers pas en JavaScript
4.1 Variables numériques
cuy copyleft
  See You Why?  

 


un test sur les variables (3.9) | | variables texte ou string (4.2)

Contenu

 

 

I. Variables numériques

Curieux, on peut déclarer une variable en JavaScript, sans en déterminer le type... en cas de déclaration, non suivie d'une affectation, on dira qu'elle est de type "undefined". Pour l'instant, ce type de variables nous importe peu. On préférera faire connaissance de variables :

De plus, on peut affecter une variable d'une valeur, sans l'avoir déclarée et le type d'une variable peut se modifier au cours de la lecture du programme. Ce n'est pas une raison pour tout ignorer des types de variables qui existent en JavaScript.

En général, en informatique, on admet par exemple les types suivants :

Type Taille borne inférieure borne supérieure ex:
byte/char
short int
int
long int
float
double
bouléen
string (chaine)
caractère sur 1 byte
entier de 2 octets
entier 4 octets
entier de 8 octets
réel de 4 octets (virgule flottante)
réel de 8 octets
V ou F sur 1 octet
autant de bytes que de caractères
0
-32768
-2147483648
-9223372036854775808
-3.4 × 1038
-1.7 × 10308
 
 
255
+32767
2147483647
9223372036854775807
3.4 × 1038
-1.7 × 10308
 
 
 
Type Taille borne inférieure borne supérieure exemple

JavaScript ne différencie pas les types de variables numériques... c'est donc plus facile, mais attention aux erreurs non décelables.
L'avantage est de ne pas devoir préciser le types de boite avec laquelle on travaillera... l'inconvénient, si on ne distingue pas les ingrédients du matériel dans une recette, est qu'on sera incapable de déceler une erreur dans l'instruction : "Vous cassez votre poele" écrite au lieu de "Vous cassez vos œufs dans votre poele"...

Parmi les variables numériques, on abordera les entiers positifs, les nombres décimaux et les nombres négatifs.

 

A. les entiers positifs...

Les quelques exemples que nous avons donnés jusqu'ici faisaient appel à des entiers positifs... et il n'est pas obligatoire de déclarer les variables.

Nous profitons de l'occasion pour préciser :

      1. Une variable est déclarée de façon explicite si l'on fait précéder le nom de la variable par le mot réservé var pour indiquer qu'il s'agira d'une variable.
        Cette déclaration n'est pas obligatoire, mais c'est la façon rigoureuse de déclarer les variables en JavaScript. Il ne restera plus qu'à lui affecter une valeur.
        var MaVariable;
         
      2. Une variable peut aussi être déclarée de façon implicite. Dans ce cas, il suffit d'écrire le nom de la variable suivie du caractère = et de la valeur à affecter : c'est faire une affectation non précédée d'une déclaration. Rappelons que le signe = est le symbole d'affectation en JS, qui devrait se lire "devient égal" ou "prend la valeur de", et que ce signe se note <— en algorithmique. C'est une affectation sans déclaration.
        MaVariable = 23;
         
        Même si une déclaration implicite est tout à fait reconnue par les navigateurs, il est plus rigoureux de déclarer les variables de façon explicite avec le mot var.
         
        À défaut, dans des programmes un peu plus sophistiqués, il pourrait y avoir confusion de valeur des variables et surtout, la portée (ou visibilité) des variables [et donc aussi la mobilisation de la mémoire de l'ordinateur...] sera différente. Il est un peu tôt pour développer cette idée, mais il nous paraissait opportun de le signaler déjà. Nous y reviendrons après l'étude des fonctions, chapitre 11.
         
      3. JS permet de procéder au même moment à une déclaration explicite et à son affectation dans la même ligne de code JS :
        var MaVariable = 23;

Exemple

<html>
<head><title>produit de 2 nombres</title></head>
<body>
<script type="text/javascript">

   //déclaration explicite
   var valeur1;
 
   //affectation
   valeur1 = 4;
 
   //déclaration implicite
   valeur2 = 12;

   //déclaration explicite et affectation
   produit = valeur1 * valeur2;

   //usage
   document.write(produit);
 
</script>
</body>
</html>


Un des usages des variables est de pouvoir attribuer à une variable la valeur d’une autre variable, telle quelle ou modifiée. C'est la cas de la variable produit dans l'exemple ci-dessus : "la variable produit prend la valeur du contenu de la variable valeur1 multipliée par la valeur du contenu de la variable valeur2".

Signifie que la valeur de produit est maintenant celle du produit de valeur1 et valeur2. Notez que cette instruction n’a modifié en rien les valeurs de valeur1 et valeur2 :
une instruction d’affectation ne modifie pas ce qui est à droite du signe d'affectation,
elle ne modifie que ce qui est situé à gauche du signe d’affectation.

Cette règle reste valable si l'on écrit :
compteur = 12;
compteur = compteur + 1;
en effet, on devrait lire : "la variable compteur prend la valeur du contenu de la variable compteur augmentée de 1". L'instruction notée en gras (fausse en math, mais correcte en JS puisque le signe = signifie 'devient égal à') signifie que la nouvelle valeur de compteur est l'ancienne valeur de compteur (12), augmentée de 1.

B. les décimaux positifs

 Un nombre décimal est un nombre écrit avec une virgule et compris entre deux nombres entiers. ” est une approche suffisante en informatique, mais ne l'est certainement pas dans la rigueur mathématique. Nous nous en contenterons ici. 9,95 est un nombre décimal compris entre 9 et 10.

JS va se satisfaire de cette définition, sauf que, comme en anglais, on ne fera pas usage d'une virgule décimale mais d'un point décimal. De plus, même si en typographie correcte, on sépare chaque tranche de 3 chiffres par une espace (rappel, espace est féminin en typographie - voir), parfois remplacée par des points en typographie incorrecte, les nombres décimaux en JS ne peuvent pas comprendre d'espace ni de point autre que le point décimal.

Nous utilisons l'écriture des nombres en base décimale (avec 10 chiffres), l'ordinateur ne travaille qu'en base binaire (avec 2 chiffres 0 et 1). Il ne faut dès lors pas s'étonner de quelques imprécisions dues aux arrondis lors de calcul qui nous paraissent simples en décimal.
Par exemple, sur notre ordinateur, nous avons divisé 5 par 9, puis multiplié le résultat par 6... mentalement, le lecteur aura calculé rapidement 30/9 donc 10/3 donc 3,3333333333, mais le résultat affiché était 3,3333333335... faible erreur, mais erreur quand même.

C. les négatifs

Tout ce qui a été dit au niveau des entiers positifs et des décimaux positifs reste valable pour les négatifs... donc pas de commentaires supplémentaires.

Et pour ceux qui veulent montrer qu'ils en savent plus que le commun des mortels, précisons qu'un nombre en JS est stocké sur 64 bits (ou 8 bytes) dont une mantisse de 53 bits. Cela permet des valeurs entières jusqu'à 9 007 199 254 740 991, à partir duquel on commence à perdre de la précision jusqu'à 2^1024-1 qui est la valeur flottante la plus élevée représentable en JavaScript.

JavaScript réunit en un seul type tous les entiers, petits et grands, les décimaux, et les réels, flottants ou pas.

JavaScript inclut également, en plus des nombres décrits ci-dessus, dans le type number deux valeurs spéciales.
Infinity, un nombre signé, est renvoyé dès que le résultat dépasse la capacité de stockage de number, mais aussi dans des cas limites simples.
Dans les cas indécidables, ou bien lorsqu'une opération qui retourne un nombre ne peut pas le faire, c'est la valeur NaN (Not A Number) qui est renvoyée.
Nous verrons plus en détail les opérateurs arithmétiques, les méthodes de Number et les méthodes de Math pour les cas qui produisent ces deux valeurs au chapitre 12 "Quelques opérateurs mathématiques".

Il nous paraît être trop tôt de vous parler de la portée des variables, et de savoir si elles sont locales ou globales, nous y reviendrons dans le chapitre "11. Variables locales ou globales", ici.

 

D. l'opérateur 'typeof'

JS a créé une fonction qui permet de tester le type de variable qu'on lui passe comme paramètre. La syntaxe en est simple :

typeof ma_variable_a_tester ou typeof(ma_variable_a_tester) qui retourne l'une des valeurs 'number', 'string', 'object', 'boolean', 'function' ou 'undefined'.

 

Exemple

<html>
<head><title>type de variable</title></head>
<body>
<script type="text/javascript">
var i = 1234;
document.write(i + " >> " + typeof i + "<br>"); //retourne number
var somme=123+456;
document.write(somme + " >> " + typeof somme + "<br>"); //retourne number
document.write("<br>");

var titre="Le tutoriel 'premiers pas en JavaScript' du site CUY";
document.write(titre + " >> " + typeof titre + "<br>"); //retourne string
var curieux = "" + somme;
document.write(curieux + " >> " + typeof curieux + "<br>"); //retourne string
document.write("<br>");

var jour = new Date();
document.write(jour + " >> " + typeof jour + "<br>"); //retourne object
document.write("<br>");

var choix = true;
document.write(choix + " >> " + typeof choix + "<br>"); //retourne boolean
var age = 35;
var mineur = (age<21);
document.write(mineur + " >> " + typeof mineur + "<br>"); //retourne boolean
document.write("<br>");

var cas = null;
document.write(cas + " >> " + typeof cas + "<br>"); //retourne object
document.write(parseFloat + " >> " + typeof parseFloat + "<br>"); //retourne function
document.write(Math + " >> " + typeof Math + "<br>"); //retourne object (sur les navigateurs récents)
document.write(Math + " >> " + typeof Math + "<br>"); //retourne function (sur les plus vieux navigateurs)
document.write("<br>");
 
</script>
</body>
</html>

 

 

II. Variables 'string'

voir suite >>>

 

III. Variables logiques ou booléennes

voir suite >>>

 

IV. Variables 'null'

voir suite >>>

 

V. Variables tableau ou 'array'

voir suite >>>

 

VIII. Exercices sur les types de variables

voir suite >>>

 

IX. Test relatif aux types de variables

voir suite >>>


un test sur les variables (3.9) | | variables texte ou string (4.2)

 

 

Merci de votre visite à partir de :

Vous êtes sur :
https://cuy.be/cours/jvs/jvs_040_variables_nombre.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).