La syntaxe est basée sur les concepts de nom, nombre, et string (chaîne de caractères)
100; 1.0e2; 10e1;
(2.5).toString(2);
Math.floor(12.3); Math.sqrt(34);
Number.MAX_VALUE;
2*Number.MAX_VALUE;
2/-0;
0/0;
"toto"; 'titi';
"aA" === "a\u0041";
"un".length === 2;
"ABCD".charAt(1);
'cat'.toUpperCase();
("10" + "2");
(10 + "2" + 3);
(10 + 2 + "3");
2*6 === 3*4;
(NaN === NaN);
(isNaN(NaN));
(0 == "0");
(0 == "");
("" == "0");
("10" < 2);
("10" < "2");Attention si les types sont différents!!!
null
et undefined
null
décrit la valeur unique représentant vide ou référence inexistante.undefined
précise que la valeur n'est pas définie.Par convention, on utilise plutôt null
que undefined
; ainsi la valeur undefined
indique que la variable n'a pas été initialisée.
Les types simples de JavaScript sont: number, string, boolean, null, et undefined. Toutes autres valeurs sont des objets.
{nom:"Robert",age:21};
var objet={nom:"Rioux"}; objet['age'] = 25; objet['nom'] = "Beaulieu"; [objet.nom, objet.age];
Numbers, strings, et booleans sont comme objets sauf qu'ils sont immutables - on ne peut pas les changer, ajouter de propriétés, etc...
var tableau = [1,2,3,4];
var a = [0,1,2]; a[3]=3; a[4]=4; a.push(5); a[a.length] = 6; // a.push(6) a['toto'] = 'titi'; alert(a.toto); a;
Exemples:
now = new Date();
x = {annee:2012, mois:0, jour:1, heure:10, min:1, sec:32}; d = new Date(x.annee, x.mois, x.jour, x.heure, x.min, x.sec);
now.getMinutes();
Exemples:
re=/[a-z]+/; re.test("20 cents");
"Tarte aux pommes".match(re);
"100.23".match(re);
var f = function(x,y){return x+y;}; // function f(x,y){return x+y;};
function f(x){return x+x;}; f(8);
o={set:function(x){this.x=x;}}; o.set(2); o.x;
new
:
function Point(x,y){ this.x=x; this.y=y; this.add=function(x){ this.x += x.x; this.y += x.y; return this;}; this.toString=function(){ return "("+this.x+ ","+this.y+")"; } }; var o = new Point(3,2); o.add(o);
Une unité de compilation est une liste d'instructions. Dans un navigateur, chaque élément <script> définit une unité de compilation qui est exécutée immédiatement - les noms ainsi introduits sont globaux et peuvent cacher les objets déjà définis.
var ma_variable = 10;Sinon, elle est globale!
var o = {}; o.x = 1;
Instructions "if-else" et "switch-case-break";
var o = [0,1]; if (o[0] === 0) { o[2] = 1; } else { "sinon"; }; switch (o[2]) { case 0 : "cas 0"; break; case 1 : "cas 1"; break; case 2 : "cas 2"; break; default : "autres"; };
Boucles "for", "while", et "do-while":
t = [1,1]; for (var i=2; i < 4; i=i+1){ t[i] = t[i-1] + t[i-2]; }; t;
t.next = function(){ var i = this.length; this[i] = this[i-1]+this[i-2]; }; while(t.length < 6){ t.next(); }; t;
while (true) { t.next(); if (t.length > 8) break; }; t;
do { t.next(); } while (t.length < 12); t;
Il y a trois manières d'appeler une fonction:
this
représente
l'état global:
F = function(x){ this.a = x; return this.a; }; a = 1; o ={a:2, F:F}; [F(3), a, o.a];
o
, où this
représente
l'objet o
:
[o.F(4), a, o.a];
new
), où this
représente
l'objet créé (la valeur retournée est ignorée):
o2 = new F(5); [o2.a, a, o.a];
fact = function(x){ if (x <= 0) throw "argument = "+x; if (x === 1) return 1; return x * fact(x-1); }; fact(4);
fact(-1);
try { fact(-1); } catch(err) { 'Problème: '+ err; }
try { fact("test"); } catch(err) { 'Problème: '+ err; }