Pierre Perrody
Voici des "petits" cours de javascript que j'avais, à l'origine, écrit pour expliquer un tant soit peu le fonctionnement du javascript à des amis.
Comme il ne faut pas réinventer la roue, je conseillerais de lire cette page qui est bien plus fournie :
Introduction au javascript par la Mozilla Foundation

LES CONSTANTES


Il y a trois constantes principales :
-Nan pour "not a number"
Cela permet de savoir si la variable est de type number
il existe une fonction qui permet de le savoir, c'est isNaN(variable)
elle retourne vrai(true) si la variable n'est pas un nombre.

-null pour nulle ou pas de valeur (pas d'objet)
On peut savoir si une variable est nulle ou pas, si on fait
a='';
if (a==null)....;
retourne vrai(true) si la variable est nulle.

-undefined pour "indéfini"
Undefined est presque similaire a null, mais n'apparait que si la variable à été initialisé,
mais qu'on ne lui à pas affècté de valeur, si on fait :
var a;
et qu'on cherche a récupéré la valeur de a, on aura alors undefined.
Mais si on cherche a récupérer la valeur de a alors qu'on ne l'a pas déclaré, on obtiendra une erreur.


LES OPÉRATEURS

Les opérateurs arithmétiques binaires

+ plus, dans le sens addition.
- moins, dans le sens soustraction.
* multiplié par, dans le sens multiplication.
/ divisé par, dans le sens division (quotient exact)
% modulo, dans le sens "reste exact(entier) d'une division", 312 % 7 donnera 4 car 312 = 44*7 + 4, 4 étant le reste entier de cette division.
= égal, dans le sens affectation (prend la valeur de) dans toto=4, toto prend pour valeur 4


Les opérateurs arithmétiques unaires

- négation, dans le sens "opposé", dans toto=-toto, tot devient l'opposé de toto (à condition que toto soit numérique).
++ incrémentation, dans le sens on rajoute +1 à la variable.
-- décrémentation, dans le sens on enleve 1 (-1) à la variable.


L'incrémentation et la décrémentation peuvent être utilisé de deux manières :
en pré-incrémentation et pré-décrémentation, ou en post-incrémentation et post-décrémentation.
dans le cas d'un pré, on ajoute ou enlève 1 avant de faire l'opération.
par exemple :

toto=10;
titi= --toto * 2; on ajoute 1 a toto et on multiplie
// toto vaut maintenant 9;

tata= ++toto * 2; on ajoute 1 a toto et on multiplie
// toto vaut maintenant 10;

titi vaudra 18, et tata vaudra 20;

Dans le cas du post, c'est l'inverse, on ajoute/enlève 1 après avoir fait l'opération.
par exemple :

toto=10;
titi= --toto * 2;
on multiplie toto par 2 et on soustrait 1 a toto
// toto vaut maintenant 9;

tata= ++toto * 2;on multiplie toto par 2 et on ajoute 1 a toto
// toto vaut maintenant 10;

titi vaudra 20, et tata vaudra 18.

Et si on fait :

toto=10;
titi= --toto * 2;
on multiplie toto par 2 et on soustrait 1 a toto
// toto vaut maintenant 9;

tata= toto++ * 2;on ajoute 1 a toto et on multiplie toto par 2
// toto vaut maintenant 10;
titi vaudra 18, et tata vaudra 18 aussi.


L'opérateur de concaténation

Comme vu dans le cour précédent, l'opérateur de concaténation + n'agit que sur les chaines.
On va le voir à travers deux exemples :
var nom='toto';
var mon_texte='mon nom est : '+ nom +', et il est un peu con!';

si on affiche la valeur de la variable mon_texte, on verra :"mon nom est : toto, et il est un peu con!".
On a concaténé les deux chaines.
var prix=24; var affichage='3 kilos de carottes valent : ' + prix * 3 + ' francs.';
Là, si on affiche a valeur de la variable affichage, on verra : "3 kilos de carottes valent : 72 francs.".
On a donc concaténé les deux chaines, mais comme la variable prix est de type numérique, il a éffectué l'operation avnt la concaténation.
Si prix avait été une variable de type texte, la concaténation aurait donné : "3 kilos de carottes valent : Nan francs.".
=>Nan parce qu'il ne peut pas multiplier une chaine de caractère par 3.

Les opérateurs bit à bit

Ou bitwise operators en anglais.
Ici on traite les variables comme une simple suite de 0 et 1 binaires, sans se préoccuper de ce qu'ils représentent.
Je vais d'abord toutes les énoncer, puis les détaillées.
(mais ces opérateurs sont utilisé à un niveau de programmation assez avancé!)
& ET, dans le sens intersection logique
|  OU inclusif, dans le sens réunion logique.
^ OU exclusif, dans le sens réunion logique.
~ complément

Donc pour résumer rapidement, le & (ET) permet de "forcer" un o dans une position binaire quelconque.
Le | (OU inclusif) permet de forcer un 1 et le ^ (OU exclusif) permet d'inverser un bit.
Et le ~ (complément) réalise le complément a 1, en inversant tous les bits d'une variable.

Je ne vais pas m'etendre dessus, c'est un peu plus que compliqué pour le moment ;-)

Les opérateurs de décalage

Ici aussi les opérations sont un peu compliquée, et sont utilisé pour le travaille binaire.
<<décalage a gauche, on décale tous les bits vers la gauche en ajoutant des 0
par exemple : 101010 << 2 donne 10101000, j'ai décalé l'ensemble de 2 vers la gauche
>>décalage logique a droite, on décale les bits vers la droite en remplacant par des 0
par exemple : 1010111 >> 2 donne 0010101, j'ai décalé l'ensemble de 2 vers la droite ( on a perdu les deux 1 a droite)
>>>décalage arithmétique à droite, on fait "tourner" les bits vers la droite.
par exemple : 1100101 >>> 2 donne 0111001, j'ai pris les 2 bits de droite que j'ai décalé a gauche.


Ici aussi je ne vais pas m'etendre dessus, c'est un peu plus que compliqué pour le moment ;-)

Les opérateurs de comparaison

<strictement inférieur
<=inférieur ou égal
==égal, dans le sens de l'égalité ( if (2==2) )
>strictement supérieur
>=supérieur ou égal
!=différent


Les opérateurs booléens

Aussi appelés opérateurs logiques, ce sont des conditions tres fréquements utilisées,
ces opérateurs renvoient toujours true ou false.
&&ET, intersection
correspond au 'SI x ET SI y', par exemple :
var jean=29;
if (jean>24 && jean<30) valeur='jean est encore jeune, il a '+jean+' ans';
else valeur='jean est trop vieux, il a '+jean+' ans';

||OU, réunion
correspond au 'SI x OU SI y', par exemple :
var jean=29;
if (jean>30 || jean<24) valeur='jean n\'est pas dans la bonne tranche d\'age';
else valeur='Hé, les filles, jean est pile poil dans la bonne tranche d\'age pour vous';

!NON, négation
Plus utilisé dans les test pour savori si une variable est présente ou non.


Les opérateurs associatifs

l'operateur d'affectation simple (=), comme on l'a vu dans les opérateurs arithmétiques binaires
sert simplement à ranger un résultat dans une variable, ce qui est écrit a gauche est obligatoirement une variable
(vous vous voyez écrire 2=3)?
Mais cet opérateur d'affectation peut se combiner avec d'autres opérateurs pour former des opérateurs associatifs.
Les plus couramment utilisé sont :
-=(moins égal) soustrait la valeur de la variable de droite a celle de gauche
par exemple
var a=10;
a -= 3;
a vaut maintenant 7.
c'est équivalent à :

var a=10;
a = a - 3;

+=(plus égal) cas numérique, ajoute la valeur de la variable de droite à celle de gauche
par exemple
var a=10;
a += 3;
a vaut maintenant 13.
c'est équivalent à :

var a=10;
a = a + 3;

+=(plus égal) cas chaine de caractère, concatène la chaine de droite à celle de gauche
par exemple
var a='toto';
a +=' est un con'
a vaut maintenant 'toto est un con'.
c'est équivalent à :

var a='toto';
a = a + ' est un con';

/=(divisé égal) divise la valeur de la variable de gauche par celle de droite
par exemple
var a=10;
a /= 2;
a vaut maintenant 5.
c'est équivalent à :

var a=10;
a = a / 2;

*=(multiplié égal) multiplie la valeur de la variable de gauche par celle de droite
par exemple
var a=10;
a *= 2;
a vaut maintenant 20.
c'est équivalent à :

var a=10;
a = a * 2;

Les opérateurs conditionnel ternaire

Cet "opérateur" est des plus intéressant, non seulement parce qu'il prépare le cour suivant,
mais aussi parce que c'est un "raccourci" en programmation :
si j'écris var a=(b<c)?'inférieur':'supérieur';
ca vous dit pas grand chose!!?!
mais si je vous dit :
b est il inferieur a c?
si oui alors a vaut 'inférieur' sinon a vaut 'supérieur'.
C'est un raccourci très pratique de l'expression de comparaison IF... ELSE....
et permet d'affecter directement le résultat à une variable.