La syntaxe

Similitudes et différences par rapport à C/C++

La syntaxe du JavaScript est très proche de celle du C/C++ c'est à dire que le code est constitué d'une suite d'instructions séparées par ; et que lors des instructions de contrôle de flux, une suite d'instructions peut être placée entre accolades { ... }

Les étiquettes sont définies par un nom suivi de :

Déclarations facultatives, pas de typage

Par contre, le javaScript n'étant pas compilé, il n'est pas nécessaire de définir les variables à l'avance, même si cela est possible mais alors le type n'est pas précisé

var nom = valeur, ... ;

De même, les objets sont définis comme suit:

objet=new Object();
objet.champ1=valeur1;
objet.champ2=valeur2;
...

ou bien

function objet(param1,...,param n)
{
	this.champ1=valeur1; // this référence l'objet actuel
	this.champ2=valeur1;
	...
} 
obj = new objet(..,...,...)

Pour libérer la mémoire allouée pour un objet, on utilise bien sûr

delete variable

Pour ne pas répêter explicitement l'objet lors d'accès à différents champs, utilisez

with (objet) { champ1=valeur1; ...}

Astuce: Trouver les propriétés d'un objet

for (variable in objet)
{ 
	objet[variable]=...
	... 
}

Contrôle de flux

Les instructions de contrôle de flux sont similaires à celles du C, pour mémoire:

if (boolean) instr1; else instr2;
while (boolean) {...}
for (instr1; condition; instr2) {...}

switch (expression) 
{
  case cas1: ... ... ... break;
  case cas2: ... ... ... break; 
	.... 
}

break
continue

Affectations et opérations

Les opérations d'affectations sont similaires à celles de C et les opérateur classiques du C sont disponibles

+= ajout
-= soustraction
*= multiplication
/= division
%= reste de la division
<<= décalage à gauche des bits
>>= décalage à droite des bits
++ incrémentation
-- décrémentation

Opérateur conditionnel

variable=(condition)?valeur1:valeur2;

Opérateurs logiques

!(non) ||(ou) &&(et)

Opérateurs binaires arithmétiques

&(et) |(ou) ^(ou exclusif) ~(inversion des bits)

Opérateurs de comparaisons

Avec conversion de type

==(égalité)
!=(non égalité)
<(inférieur)
>(supérieur)
<=(inférieur ou égal)
>=(supérieur ou égal)

Sans conversion de type

===(identité)
!===(non identité)

Les objets de base

Chaîne de caractères

JavaScript offre un type String doté de multiples fonctions permettant de réaliser des traitements complexes.

toUpperCase() Majuscule
toLowerCase() Minuscule
subString(début, fin) Extraction d'une chaine
subStr(début,longueur) Extraction d'une chaine
concat(complément) Concatène complément
indexOf(chaine) Recherche chaine
lastIndexOf(chaine) Recherche à partir de la fin
charAt(position) Retourne le position-ièmecaractère

Tableaux

JavaScript propose un gestion améliorée des tableaux

var table = new Array (premier element, deuxieme, troisieme...);

ou

var table = [premier element, deuxieme, troisieme...];
join renvoie une chaine de caractère
concat concatène deux tables
push PILE : empile un élément
pop PILE : dépile un élément
shift LISTE : retire head et le renvoie
unshift LISTE : place un élément en head
reverse inverse la table

Astuce: Obtenir la valeur undefined

void(expression)

expression est quelconque

Cela peut être utile pour tester si une variable a été initialisée ou non car si elle ne l'a pas été, elle vaut undefined, ce que l'on ne peut pas tester directement

retour