UPPREVIOUSNEXT  Technologies Internet et Education, © TECFA
  3. Caractéristiques du langage JavaScript

3. Caractéristiques du langage JavaScript

3.1 Caractéristiques clefs:

 

3.2 La notion de programme

La notion de programme (suite)

Un programme est composé d’une série d’instructions , parfois regroupées en fonctions , qui compose un algorithme permettant de traiter des données .

Les données sont manipulées par le biais de variables.

Les fonctions peuvent recevoir des paramètres (données), effectuent des calculs ou des actions en utilisant (parfois) des variables internes. Les fonctions peuvent retourner une valeur à la fin de leur exécution. Un fonction est déclenché par une invocation, c-a-d. une instruction ailleurs dans le programme y compris la gestion d’un événement qui survient (l’utilisateur clique sur un bouton par exemple)

L’algorithme contient une ou plusieurs structures de contrôle qui permettent au programmeur de décider les calculs et les actions à entreprendre. Ces structures permettent de sélectionner une action en fonction de la valeur d’une variable, de répéter une action de multiples fois...

3.3 Les variables

Une variable est une zone de mémoire informatique contenant une valeur pouvant varier au cours de l’exécution d’un programme.

entier (integer) : 134
réel (float) : 345.38743
chaîne de caractère (string) : "réponse 3 : Lausanne"
score = 34;

On lit de droite à gauche "mettre la valeur 34 dans la variable score" (non pas "score égale 34", ce n’est pas un opérateur d’égalité )

feedback = "Vous avez gagné !";

write(feedback); (écrit le contenu de la variable feedback)

var score = 0;

3.4 Les fonctions

Ensemble d’instructions identifié par un nom unique permettant d’effectuer une action, un calcul...

addfooter("Fait à TECFA");
score = calcule(reponse1, reponse2);

3.5 Structures de contrôle

Les structures de contrôle permettent de contrôler l’exécution d’un programme en faisant des tests sur les valeurs d’une variable. Il existe plusieurs structures de contrôle. Seuls 2 sont présentées ici en quelque détail.

A. La sélection : if... else

On peut résumer en quelques mots cette structure à "si une condition est vraie alors faire ceci sinon faire cela".

 

if (score < 3) {

niveau = "débutant";
} else {

if (score < 5) {


niveau = "averti";

} else {


niveau = "expert";

}
}
 

Voici l’arbre de décision associé à l’exemple ci-dessus.

B. La boucle incrémentale: for...

for (<expression de début>; <condition>; <expression de fin>) {

expression 1;

expression 2;

...

}

Exemple : calcul d’un produit factoriel (n! = 1 * 2 *... * n-2 * n-1 * n)

var n = 12;
var prodfact = 1;
for (i=1; i<=n; i++) {

prodfact = prodfact * i;
}
document.write("le produit factoriel de" + n + " vaut " + prodfact); )

C. While

while (condition) {
     statements
   }
 

D. break (dans while, for, switch): sortir de la boucle

E. switch

switch (expression){
      case label : 
         statement;
         break;
      case label : 
         statement;
         break;
      ...
      default : statement;
   }

3.6 Les objets

(sujet à option pour les débutants ...)

A. Instantiation d’objets et utilisation de propriétés et méthodes

2 méthodes d’instantiation:

new Object();

objet = {};

var objet = new Object();

var objet = {};

Lire la valeur d’une propriété

objet.propertyName

obj["nom_propriété"];

var name = obj.name;

var name = obj["name"]

Assigner une valeur à une propriété

objet.propertyName = ...

obj["nom_propriété"] = ....

obj.name = "James_Bond";

obj["name"] = "James";

 

Invocation d’une méthode

objet.nom_méthode(arguments...)

 

B. Création d’objets

Exemple simple:

function car(make, model, year) {
   this.make = make;
   this.model = model;
   this.year = year;
}
  • Cette fonction "car" crée implicitement un objet
  • chaque ligne this.xxx assigne un paramètre passé lors de la création à une variable interne (propriété)
var ta_voiture = new car("Toyota", "Corolla", 2005);
var ma_voiture = new car("Mazda", "Miata", 1990);

Objets dans objets

  • Dans cet exemple, on définit d’abord un 2ème objet
function person(name, age, sex) {
   this.name = name;
   this.age = age;
   this.sex = sex;
}
  • on crée une instance
rand = new person("Rand McKinnon", 33, "M");
  • on modifie la fonction de construction pour le type d’objet "car"
function car(make, model, year, owner) {
   this.make = make;
   this.model = model;
   this.year = year;
   this.owner = owner;
}
  • Lorsqu’on crée un instance de car, on peut maintenant lui indiquer son propriétaire.
bagnole = new car("Eagle", "Talon TSi", 1993, rand);
  • Pour connaitre le propriétaire de bagnole:
bagnole.owner.name

Autrement dit: On peut descendre une hiérarchie d’objets en enchaînant: v.x.y.z

 

Définition de méthodes

object.methodname = function_name

Voici la suite de l’exemple:

function displayCar() {
   var result = "A Beautiful " + this.year + " " + this.make
      + " " + this.model;
   pretty_print(result);
}
function car(make, model, year, owner) {
   this.make = make;
   this.model = model;
   this.year = year;
   this.owner = owner;
   this.displayCar = displayCar;
}
bagnole.displayCar()

UPPREVIOUS NEXT -- TIE