ABCSITE

INFORMATIQUE

 
 
 

 
 

 JavaScript 

 

 

 II. Les structures de données en JavaScript

1. Les données constantes

JS fournit les constantes suivantes, directement disponibles :

· Les constantes numériques : entiers, " réels " écrits en notation décimale, ou flottante (c-à-d en notation scientifique, par ex : 2718E-3
· Les 2 constantes booléennes : true ou false
· Les chaînes de caractères, entourées indifféremment de guillemets " " ou d'apostrophes ' ' (à privilégier).
· La constante spéciale null signifie " rien ", " absence de valeur ". Cette " valeur " est attribuée à toute variable utilisée sans être définie (par exemple prompt() retourne null si on sélectionne le bouton Annuler).

2. Manipulation des chaînes de caractères

· JavaScript facilite beaucoup l'affichage des résultats en convertissant automatiquement les entiers en chaînes de caractères, ce qui permet de concaténer des nombres avec des chaînes de caractères (transtypage automatique).
· Dans l'instruction d'écriture dans le document courant, document. write ( ), les données à afficher peuvent être séparées par des virgules ou des +, (la concaténation par l'opérateur + est recommandée)
· Des caractères spéciaux peuvent être insérés dans les chaînes : \b (retour arrière), \f (saut de page), \n (nouvelle ligne), \r (Entrée), &(tabulation) ; \' pour une apostrophe
· On peut insérer des codes HTML sous forme de chaînes, qui seront bien interprétées à l'exécution comme de véritables balise, et non par affichées telles quelles.

Exemple

<Script>
Document. write (" Voici la valeur approchée à " ,1E-3,
              " près de la constante e : " , 2718E-3) ;
document. write ("< P> " ) ;
document.write(" Mon <i> lycée</i> est situé en
<u> Seine-Saint-Denis </u> dans la ville d\'Epinay-sur-Seine ") ;
</script>


 Exécution :

Voici la valeur approchée à 0.001 près de la constante e : 2.718
Mon lycée est situé en Seine-Saint-Denis dans la ville d'Épinay-sur-Seine

 
(Attention ! le symbole " exposant " E doit être collé au dernier chiffre)

3. Déclaration des variables

a) Types de variables

On distingue 5 types de variables en JS.
Les nombres : number, les chaines : string, les booléens : boolean, les objets : object et les fonctions : function,
La fonction typeof() appliquée à une variable retourne son type.

Var chaine = 'bonjour' ;
Document.write(typeof(chaine)) ;


En voici l'exécution

String


b) Déclaration

Notation : var nom = valeur
Déclaration de la variable nom initialisée avec la valeur valeur, son type est alors celui de la valeur.

· Le mot var est facultatif, mais recommandé
· Les variables doivent commencer par une lettre ou par_
· JS distingue minuscules et majuscules
Les variables suivantes mavariable, maVariable, Mavariable, MaVariable sont toutes distinctes
· Le symbole =est réservé à l'affectation ; le symbole de comparaison (égalité) se note 

     == (2 symboles = collés)
· JS attribue automatiquement à la variable le type de la valeur affectée.
Sinon JS lui attribue une valeur et un type indéterminés " undefined "

Var x ;
Document.write (' Voici la valeur de x : x = '+ x+ "<BR>" ) ;
Document.write ("et son type : typeof(x) = "+ typeof(x) ) ;


En voici l'exécution :

Voici la valeur de x : x = undefined
et son type : typeof(x) = undefined


Attention

L'attribution implicite de type, à première vue pratique, risque d'engendrer confusion et absence de rigueur.
Il faut s'habituer à déclarer les variables et à les initialiser (c'est-à-dire leur donner une valeur initiale au moment de leur déclaration, ce qui fixe leur type.

Par exemple 
nomEcole = "Mhexa4 " ; TauxTva = 20.6 ;
Éviter absolument ce qui suit (c'est compris par JS, mais peu recommandable !)

Var x = 12.5 ;
Document.write('Ici x est une variable " réelle " : x = '+ x+" <BR>");
x + " Bonjour !" ;
document.write(" Maintenant x est une chaîne de caractères : x =" + x ) ;


En voici l'exécution :

Ici x est une variable " réelle " : x = 12.5
Maintenant x est une chaine de caractères : x = Bonjour !


4. Affectation de variables

a) Mécanisme de l'affectation

Variable = valeur (de l'expression, de même type)

Exemple à étudier :

Var a =10 ; b=15 ;
Document.write(" a= "+a+ " ; b= " +b+ " <BR> ") ;
A = 2 * b - 5 ; // valeur de a = 2 fois la valeur de b - 5
Document.write (" a= " +a+ " . b= " + b+ "< BR> " ) .
b = a + b ;  // nouvelle valeur de b = précédente valeur de b + valeur de a 
document.write(" a= " +a + " ; b = " +b) ;


En voici l'exécution :

a = 10 ; b = 15
a = 25 ; b = 15
a = 25 ; b = 40


b) Portée des variables

· Portée d'une variable

La portée d'une variable est le domaine où cette variable est connue et utilisable.

De façon générale les variables définies directement dans une séquence de script (entre <script> …. < /script> ) ont une portée globale sur toutes les parties de script.

  Exemple :

<HEAD>
<Script>
v ar lycee= "J-Feyder " ;
v ar ville = "Epinay-sur-Seine" ;
document.write(" Mon lycée est situé dans la ville d\"' +ville + "< BR> ") ;
v ar date = new Date() ;
</script>
</HEAD>
</BODY>
<script>
document.write("Il porte le nom du cinéaste " +lycee+ "< BR> ") ;
document.write (" Nous sommes au mois N° ", date.getmonth() + 1, " <BR> " ) ;
</script>
</BODY>


En voici l'exécution :

Mon lycée est situé dans la ville d'Epinay-sur-Seine
Il porte le nom du cinéaste J-Feyder
Nous sommes au mois N° 12


5. Construction des expressions

On peut distinguer plusieurs types d'expressions :

· expressions arithmétiques : construites par opérations sur les entiers et les réels.
Principales opérations
           o les 4 opérations usuelles : + , - , * , /)
           o ++ (incrément), -- (décrément)
           o % (modulo ou reste par une division entière)

· expressions d'affectation (ou attribution)
           o l'opérateur d'affectation : variable = expression
           o autres opérateurs d'attribution : +=, -=, *=, %=, ++, --
           o x += 4 équivaut à x = x + 4
              x ++équivaut à x = x + 1

· expressions chaînes de caractères
           o + opérateur de concaténation (mise bout à bout) de deux chaînes
           o var aujourd'hui = " Lundi " + 3 + " novembre " + 1997 ;
           o document.write(aujourd'hui, "<BR> " ) ;
           o += ajoute la chaîne de droite à la chaîne de gauche

var message = " Bonjour " ;
message += " tout le monde ! " ;
document.write(message) ;


En voici l'exécution :

Bonjour tout le monde !


· expressions booléennes ou logiques

           o opérateurs de comparaison : == (égal, même valeur), != (différent), >,>+ =,             < , <=
           o opérateurs logiques : && (ET), ||(OU), ! (NON), utilisés surtout dans                les instructions conditionnelles.
           o Les expressions conditionnelles
              (condition) ? vall : val2 : évalue la condition et exécute vall si vrai, ou val2                 si faux.
              Exemple : message=( fin = true ) ? " bonjour ":"au revoir".

6. Tableaux JS

Un tableau est un ensemble de données, en général de même type (chaîne de caractères, nombres…), rangées sous un même nom et distingués par un numéro.
Ce numéro, l'indice, est placé entre[] , et caractérise un élément du tableau.

a) Déclaration

Var nom_ tableau = new Array (dimension) ;
Le mot new commande la construction d'un objet de type Array, c'est-à-dire, tableau
Le paramètre dimension, s'il est présent, est le nombre d'éléments.

   Exemples 

· var MonTableau = new Array(8)
construit un tableau nommé Mon Tableau, de taille 8 éléments.

· var les 4saisons = new Array (" printemps ", " été ", " automne ", hiver ") ;
construit un tableau en initialisant 4 éléments, c'est-à-dire en leur affectant une valeur initiale (qui pourra ensuite être modifiée)

· var mois=new Array(12) ;

b) Utilisation

Les éléments d'un tableau de taille dim, sont indicés à partir de 0 jusqu'à dim-1
Exemples à étudier :

Var MonTableau = new Array(8)
Ces 8 éléments sont nommés MonTableau[0] , …. MonTableau [7]
var mois=new Array (12) ; mois [0] " Janvier "; …mois [11] = "Décembre ";

Var les 4saisons=new Array ('' Printemps'',''été'',''automne'',''hiver'') ;
Document, write (''voici les 4 saisons :<UL>'')
for (i=0 ;i<4 ;i++) {
document. write (''</LI>'',les 4saisons [i] ) 
}
document.write (" </UL> ") ;


En voici l'exécution :

Voici les saisons :
     * printemps
     * été
     * automne
     * hiver


c) Tableaux à plusieurs dimensions

Il faut les gérer comme des tableaux de tableaux (à une dimension)

Exemple 

tab=new Array(3) ;
tab[0]=new Array(1,2,3) ;
tab [1]=new Array(4,5,6) ;
tab [2]=new Array(7,8,9) ;
for (i=0;i<3;i++) {
for (j=0;j<3;j++
document.write("<br>");


Exécution

1 2 3
4 5 6
7 8 9


Propriétés :

· Lengt donne le nombre d'éléments.
Var mois = new Array(12) ;
Document.write("Il y a", mois.length, "mois dans l'année") ;
Var NbMois = mois.length ; document.write(" partagés en ", NbMois/3, 
" Trimestres ") ;

Méthodes :


· reverse() change l'ordre des éléments
· sort() trie suivant l'ordre croissant, ou suivant le modèle indiqué en paramètre.

Particularités et bizarreries..


· var tab = newArray() crée un objet vide, de type tableau, sans fixer sa dimension
· var tab=new Array(" bonjour ", charge_e, 1.6E-19, " C ") est accepté et crée un tableau hétéroclite de 4 éléments.

var unLepton= "un électron " ;
var tab=new Array(unLepton, " porte une charge négative égale à " ,1.6E-19, " C ") ;
for(i=0 ;i<tab.length;i++) document.write(tab [i] ) ;


En voici l'exécution :

Un électron porte une charge négative égale à 1.6e-19 C


· On peut aussi créer un tableau directement " en extension ", sans faire appel au constructeur Array(). On liste les valeurs des éléments dans […].
Exemple : les 2 définitions suivantes sont équivalentes :

Var Les4saisons = new Array(" printemps ", " été " " automne ", " hiver ") ;
Var Les4saisonsbis = [" printemps ", " été ", " automne ", " hiver "] ;
Document.write(" Voici les 4 saisons : <br> ")
For (i=0 ; i<Les4saisonsbis.length ; i++)
Document.write(Les4saisonsbis [i], " ").


En voici l'exécution :

Voici les 4 saisons :
Printemps été automne hiver

 
 

ABCSITE © copyright 2002