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)
où 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