On suit le lapin blanc dans son trou
var x = 0;
x++; // cela s'appelle une incrémentation
console.log( x ); // affiche "1"
// équivalent à : x = x + 1;
x--; // cela s'appelle une décrémentation
console.log( x ); // affiche "0"
// équivalent à : x = x - 1;
x += 3
console.log( x ); // affiche "3"
// équivalent à : x = x + 3;
x -= 2
console.log( x ); // affiche "1"
// équivalent à : x = x - 2;
var mot = "Bonjour";
mot += "Lior";
console.log( mot ); // affiche "Bonjour Lior"
// équivalent à : mot = mot + "Lior";
// Attention : l'opérateur "-=" n'existe pas
// pour les chaines de caractères
Les tableaux (et les objets) sont un moyen de créer des variables qui contiennent plusieurs valeurs.
Un tableau est une liste de valeurs. Les éléments d'un tableau peuvent aussi être des tableaux ou des objets.
var tableau = [10, 20, 30, 40];
console.log( tableau[0] ); // affiche "10"
console.log( tableau[3] ); // affiche "40"
var objet = { prenom: "Lior", nom: "Chamla" };
console.log( objet.prenom ); // affiche "Lior"
console.log( objet.nom ); // affiche "Chamla"
var tableau = [
[1, 2, 3],
["Lior", "Joseph", "Nicolas"],
[
[10, 20, 30],
[40, 50, 60],
[70, 80, 90]
]
];
console.log( tableau[0][0] ); // affiche "1"
console.log( tableau[0][2] ); // affiche "3"
console.log( tableau[1][1] ); // affiche "Joseph"
console.log( tableau[2][1][2] ); // affiche "60"
// Type de "tableau" => Array
var tableau = [10, 20, 30, 40, 50];
tableau.push(60); // [10, 20, 30, 40, 50, 60]
var dernier = tableau.pop(); // [10, 20, 30, 40, 50] et dernier vaut 60
var premier = tableau.shift(); // [20, 30, 40, 50] et premier vaut 10
tableau.unshift(150) // [150, 20, 30, 40, 50]
tableau.reverse(); // [50, 40, 30, 20, 150]
var longueur = tableau.length; // longueur vaut 5
// ATTENTION : Length n'est pas une FONCTION, c'est une PROPRIETE
var tableau = [10, 20, 30, 40, 50];
var chaine = tableau.join(' ');
console.log(chaine); // affiche "10 20 30 40 50"
chaine = tableau.join(' !');
console.log(chaine); // affiche "10 ! 20 ! 30 ! 40 ! 50"
var tableau2 = chaine.split(' !');
console.log(tableau2); // affiche [10, 20, 30, 40, 50]
var tableau = [10, 20, 30, 40];
var tableau2 = ["a", "b", "c"];
var tableau3 = tableau.concat(tableau2);
console.log(tableau3); // affiche [10, 20, 30, 40, "a", "b", "c"]
var personne = {
nom: "Chamla",
prenom: "Lior",
voiture: {
couleur: "Noire",
marque: "Smart",
kms: 200000
}
};
console.log( personne.prenom ); // affiche "Lior"
console.log( personne.voiture.couleur ); // affiche "Noire"
// type de "personne" => Object
var annuaire = [
{nom: "Chamla", prenom: "Lior", age: 29},
{nom: "Dupont", prenom: "Joseph", age: 99},
{nom: "Durant", prenom: "Jacques", age: 35}
];
console.log( annuaire[0].prenom ); // affiche "Lior"
console.log( annuaire[2].age ); // affiche "35"
// type de "annuaire" => Array
// type de "annuaire[0]" => Object
var personne = {
nom: "Chamla",
prenom: "Lior",
voitures: [
{marque: "Smart", couleur: "Noire", kms: 100000},
{marque: "Mercedes", couleur: "Blanche", kms: 200000},
{marque: "Renault", couleur: "Bleue", kms: 300000}
]
}
console.log( personne.voitures[0].kms ); // affiche "100000"
console.log( personne.voitures[2].couleur ); // affiche "Bleue"
console.log( personne.voitures.length ); // affiche "3"
var personne = {
nom: "Chamla",
prenom : "Lior",
disBonjour: function(){
return "Bonjour, je suis " + this.prenom + " " + this.nom ;
}
};
console.log( personne.prenom ); // affiche "Lior"
console.log( personne.disBonjour() ); // affiche "Bonjour, je suis Lior Chamla"
// nom et prenom sont des PROPRIETES de l'objet personne
// disBonjour est une FONCTION de l'objet, on parle de METHODE
function Personne(nom, prenom){
this.nom = nom;
this.prenom = prenom;
this.disBonjour = function(){
return "Bonjour, je suis " + this.prenom + " " + this.nom;
}
}
var p1 = new Personne("Chamla", "Lior");
var p2 = new Personne("Dupont", "Jean");
console.log(p1.disBonjour()); // affiche "Bonjour, je suis Lior Chamla"
console.log(p2.disBonjour()); // affiche "Bonjour, je suis Jean Dupont"
// une fonction anonyme est une fonction qui n'a pas de nom
// on peut la déclarer dans une variable par exemple :
var variable = function(mot){
console.log(mot);
}
variable("Bonjour"); // affiche "Bonjour"
var objet = {
propriete1: 'Ma valeur',
propriete2: 'Ma deuxième valeur',
methode1: function(param1, param2){
console.log(param1 + " " + param2);
}
}
objet.methode1('bonjour', 'toi'); // affiche "bonjour toi"
Les tableaux peuvent être très longs !
Il existe des moyens pour les parcourir : les boucles !
Les boucles ne servent pas qu'à parcourir des tableaux, elles peuvent être utiles dans beaucoup d'autres situations.
for( var i = 0; i < 5; i++) {
console.log( i );
}
// la première fois, affiche "0"
// la deuxième fois, affiche "1"
// la troisième fois, affiche "2"
// la quatrième fois, affiche "3"
// la cinquième fois, affiche "4"
var tableau = [10, 20, 30, 40, 50];
for( var i = 0; i < tableau.length; i++) {
console.log( tableau[i] );
}
// tableau.length vaut 5
// la première fois, affiche "10"
// la deuxième fois, affiche "20"
// la troisième fois, affiche "30"
// la quatrième fois, affiche "40"
// la cinquième fois, affiche "50"
var x = 0;
while(x < 5) {
console.log( x );
x++;
}
// la première fois, affiche "0"
// la deuxième fois, affiche "1"
// la troisième fois, affiche "2"
// la quatrième fois, affiche "3"
// la cinquième fois, affiche "4"
var tableau = [10, 20, 30, 40];
function afficherElement(element, index) {
console.log(element, index);
}
tableau.forEach(afficherElement); // on appelle ça un "callback"
// pour chaque élément du tableau, on appelle la fonction
// afficherElement. Ca lui donne automatiquement l'élément
// et son index.
// pour la premier élément, affiche : "10, 0"
// pour la troisième élément, affiche : "20, 1"
// pour la quatrième élément, affiche : "30, 2"
// pour la cinquième élément, affiche : "40, 3"
Les variables ne sont pas accessibles partout de la même manière.
Il existe des variables :
var meteo = "soleil";
var globale = 10;
console.log(globale) // affiche "10"
if(meteo == "soleil"){
var locale = 5; // automatiquement globale
console.log(globale); // affiche "10"
console.log(locale); // affiche "5"
}
console.log(locale); // affiche "5"
console.log(globale); // affiche "10"
var globale = 10;
console.log(globale) // affiche "10"
function maFonction(){
globale = 5; // utilise la variable globale
globale2 = 60; // automatiquement globale
var locale = 10; // vraiement locale
}
maFonction();
console.log(globale); // affiche "5"
console.log(globale2); // affiche "60"
console.log(locale); // lance une erreur
var globale = 10;
console.log(globale) // affiche "10"
function maFonction(nombre){
console.log(nombre) // affiche le nombre envoyé (50 par exemple)
globale = 5; // utilise la variable globale
}
maFonction(50);
console.log(globale); // affiche "5"
console.log(nombre); // lance une erreur
var globale = 10;
var nombre = 20;
console.log(globale) // affiche "10"
console.log(nombre) // affiche "20"
function maFonction(nombre){
console.log(nombre) // affiche le nombre envoyé (50 pour l'exemple)
globale = 5; // utilise la variable globale
}
maFonction(50);
console.log(globale); // affiche "5"
console.log(nombre); // affiche "20"
function maFonction(nombre){
console.log(nombre) // affiche le nombre envoyé (50 par exemple)
if(nombre > 20){
var superieur = true; // globale DANS LE CADRE DE LA FONCTION !
}
console.log(superieur); // affiche "true"
}
maFonction(50);
console.log(nombre); // lance une erreur
console.log(superieur); // lance une erreur
// on peut passer une fonction anonyme comme un callback
// souvenez vous du .forEach() qui demande en paramètre une fonction
var tableau = [10, 20, 30, 40];
function maFonction(element, index){
console.log(element, index);
}
tableau.forEach(maFonction);
// LA MEME CHOSE EN PLUS COURT :
tableau.forEach(function(element, index){
console.log(element, index);
});
// la fonction forEach demande un "callback" en paramètre
// un callback est une fonction qui va être appelée par une
// autre fonction