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.
toto=10;
titi= --toto * 2;
tata= ++toto * 2;
toto=10;
titi= --toto * 2;
tata= ++toto * 2;
toto=10;
titi= --toto * 2;
tata= toto++ * 2;
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
>>décalage logique a droite, on décale les bits vers la droite en remplacant par des 0
>>>décalage arithmétique à droite, on fait "tourner" les bits vers la droite.
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
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
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
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
var a=10;
a -= 3;
var a=10;
a = a - 3;
+=(plus égal) cas numérique, ajoute la valeur de la variable de droite à celle de gauche
var a=10;
a += 3;
var a=10;
a = a + 3;
+=(plus égal) cas chaine de caractère, concatène la chaine de droite à celle de gauche
var a='toto';
a +=' est un con'
var a='toto';
a = a + ' est un con';
/=(divisé égal) divise la valeur de la variable de gauche par celle de droite
var a=10;
a /= 2;
var a=10;
a = a / 2;
*=(multiplié égal) multiplie la valeur de la variable de gauche par celle de droite
var a=10;
a *= 2;
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.