SlideShare a Scribd company logo
1 of 23
Que fait ce code?
Les tableaux en javascript
Objectif
A la fin de cette séance, vous serez capables de manipuler
les tableaux indicés de javascript dans les règles de l'art.
- Vous aurez assimilé la syntaxe d'assignation par littéral
- Vous aurez compris et mis en oeuvre la différence entre
assignation par référence et assignation par copie.
Conditions
Utilisez :
- un IDE (Netbeans, Apatana)
- et un navigateur avec des outils de développement (ex :
Firefox avec Firebug).
Critères d'évaluation
Vous réaliserez une calculatrice à partir du code à trous
fourni.
Références
http://www.ecmascript.org/
ECMAScript Language Specification
Standard ECMA-262 3rd Edition - December 1999
ECMA-262 5.1 Edition - June 2011
http://www.crockford.com/javascript/survey.html
Que va-t-il sortir du chapeau?
var tCaisseMagique = ["colombe", "foulard", "billet"];
var tChapeau = tCaisseMagique ;
tCaisseMagique [3] = "lapin!";
console.log(tChapeau);
Assignation par valeur ou référence
Les tableaux sont manipulés par référence. Autrement dit, si on modifie le
tableau issu de l'assignation, le tableau original est modifié.
Ex : nous avons assigné la référence de tCaisseMagique à la variable
tChapeau. Les deux variables tCaisseMagique et tChapeau utilisent la même
référence : elles pointent sur la même adresse mémoire.
Toute modification de l'une ou l'autre de ces variables modifie le contenu de cet
espace mémoire commun.
Si l'on veut dédoubler un tableau on utilise la méthode slice qui retourne
une copie du tableau (et non la référence à ce tableau) :
var tChiffres = ["un", "deux", "trois"];
var tNombresPremiers = tChiffres.slice();
tChiffres[3] = "quatre";
alert(tNombresPremiers);
Je ne suis pas (qu'un) objet!
tFruits = new Array("Poires");
alert(tFruits[0]);
tFruits.unshift("Pommes");
alert(tFruits[0]);
alert(tFruits);
tFruits[10] = "Ananas";
alert(tFruits);
var oDernierElement = tFruits[tFruits.length-1];
alert(oDernierElement);
Je ne suis pas (qu'un) objet! (suite)
var oAuteur = new Object();
oAuteur["Melody Nelson"] = "Gainsbourg";
oAuteur["Pet Sounds"] = "Wilson";
alert(oAuteur["Pet Sounds"]);
alert(oAuteur);
Iterateurs
var oAuteurs = new Object();
oAuteurs["Melody Nelson"] = "Gainsbourg";
oAuteurs["Pet Sounds"] = "Wilson";
console.log("Liste des clés (les morceaux) : ");
for(var uneClef in oAuteurs){
console.log(uneClef);
}
console.log("Liste des valeurs associées à ces clés (les auteurs) : ");
for(var uneClef in oAuteurs){
console.log(oAuteurs[uneClef]);
}
Iterateurs (suite)
var oAuteurs = new Object();
oAuteurs["Melody Nelson"] = "Gainsbourg";
oAuteurs["Pet Sounds"] = "Wilson";
for(var iAuteur= 0; iAuteur < oAuteurs.length; iAuteurs++)
{
console.log(oAuteurs[iAuteur]);
}
Conclusion?
Quelle conclusion en tirez-vous sur la
relation entre tableaux et objets en
Javascript?
Les objets sont des tableaux
Object est un hashtable (tableau associatif) : une liste non
ordonnée de paires clé-valeur.
Ex : monObjet = {"cle1": "valeur1", "cle2": "valeur2"};
In the mix
http://jacques-guizol.developpez.com/javascript/Tableaux/Tableaux.php
t = [false];
console.log(t);
t.concat("ko");
console.log(t);
t = t.concat(1);
console.logt(t);
t = t.concat("ii");
t = t.concat(pi=3.14);
t = t.concat([4,5]);
t = t.concat([6,["vii","viii"]]);
t = t.concat("ix",new Array(10,11), 12);
console.log(t); console.log(t[7]); console.log(t[9]); console.log(t[7][0]);
On enchaîne!
s = t.join(" <> ");
alert(s);
s = "c h e b a m";
t = s.split(" ");
alert(t);
s[0] = "ko";
alert(s);
Conclusion?
Quelle conclusion en tirez-vous sur la
relation entre tableaux et chaînes en
Javascript?
Construisons ensemble
une calculatrice
Code à trous
Complétez le code source fourni ("minicalc").
Lorsque l'utilisateur appuie sur le bouton d'un opérateur
arithmétique:
la valeur saisie ou l'opérateur choisi est mémorisé
Lorsque l'utilisateur appuie sur le bouton "=", l'opération est
exécutée et le résultat est affiché dans le champ de saisie.
(Cette calculatrice ne sait réaliser qu'une opération simple à la fois).
Vrai ou faux?
Que fait ce code?
Le côté obscur ...
var t1 = [];
if(t1 || !t2)
{
sMsg = "Non, n'essaie pas ! "
+ "Fais-le, ou ne le fais pas!";
alert (sMsg);
}
Bilan
Objectif atteint?
Fin
La série “Que fait ce code?”
de Mickael Ruau
est mise à disposition selon les termes de la
licence Creative Commons Attribution -
Pas d’Utilisation Commerciale -
Partage dans les Mêmes Conditions 4.0 International.
Les autorisations au-delà du champ de cette licence
peuvent être obtenues à
creativecommons@ShakerTechnologies.com.

More Related Content

What's hot

Retour à la simplicité
Retour à la simplicitéRetour à la simplicité
Retour à la simplicité
Montreal JUG
 

What's hot (19)

Nouveautés JavaScript dans le monde Microsoft
Nouveautés JavaScript dans le monde MicrosoftNouveautés JavaScript dans le monde Microsoft
Nouveautés JavaScript dans le monde Microsoft
 
Php 2 - Approfondissement MySQL, PDO et MVC
Php 2 - Approfondissement MySQL, PDO et MVCPhp 2 - Approfondissement MySQL, PDO et MVC
Php 2 - Approfondissement MySQL, PDO et MVC
 
Javascript : fondamentaux et OOP
Javascript : fondamentaux et OOPJavascript : fondamentaux et OOP
Javascript : fondamentaux et OOP
 
CocoaHeads Rennes #13 : Magical Record
CocoaHeads Rennes #13 : Magical RecordCocoaHeads Rennes #13 : Magical Record
CocoaHeads Rennes #13 : Magical Record
 
CocoaHeads Rennes #9 : Gestion mémoire, du débutant à l'expert
CocoaHeads Rennes #9 : Gestion mémoire, du débutant à l'expertCocoaHeads Rennes #9 : Gestion mémoire, du débutant à l'expert
CocoaHeads Rennes #9 : Gestion mémoire, du débutant à l'expert
 
Javascript #9 : barbarian quest
Javascript #9 : barbarian questJavascript #9 : barbarian quest
Javascript #9 : barbarian quest
 
Introduction a jQuery
Introduction a jQueryIntroduction a jQuery
Introduction a jQuery
 
Présentation JavaScript
Présentation JavaScriptPrésentation JavaScript
Présentation JavaScript
 
Javascript proprement
Javascript proprementJavascript proprement
Javascript proprement
 
Comprendre les scripts shell auto-extractible
Comprendre les scripts shell auto-extractibleComprendre les scripts shell auto-extractible
Comprendre les scripts shell auto-extractible
 
Promises Javascript
Promises JavascriptPromises Javascript
Promises Javascript
 
Bases de PHP - Partie 1
Bases de PHP - Partie 1Bases de PHP - Partie 1
Bases de PHP - Partie 1
 
Sirikit par Julien Coudsi
Sirikit par Julien CoudsiSirikit par Julien Coudsi
Sirikit par Julien Coudsi
 
Retour à la simplicité
Retour à la simplicitéRetour à la simplicité
Retour à la simplicité
 
CocoaHeads Rennes #1 : Grand Central Dispatch
CocoaHeads Rennes #1 : Grand Central DispatchCocoaHeads Rennes #1 : Grand Central Dispatch
CocoaHeads Rennes #1 : Grand Central Dispatch
 
Tp-jquery
Tp-jqueryTp-jquery
Tp-jquery
 
Shell
ShellShell
Shell
 
Javascript #4.2 : fonctions for pgm
Javascript #4.2 : fonctions for pgmJavascript #4.2 : fonctions for pgm
Javascript #4.2 : fonctions for pgm
 
Trucs et astuces PHP et MySQL
Trucs et astuces PHP et MySQLTrucs et astuces PHP et MySQL
Trucs et astuces PHP et MySQL
 

Similar to Javascript - Tableaux : que fait ce code ?

Javascript : que fait ce code?
Javascript : que fait ce code?Javascript : que fait ce code?
Javascript : que fait ce code?
Ruau Mickael
 
Réu technodejs
Réu technodejsRéu technodejs
Réu technodejs
naholyr
 
GWT : under the hood
GWT : under the hoodGWT : under the hood
GWT : under the hood
svuillet
 
Présentation Groovy
Présentation GroovyPrésentation Groovy
Présentation Groovy
guest6e3bed
 
Présentation Groovy
Présentation GroovyPrésentation Groovy
Présentation Groovy
JS Bournival
 
ENIB 2013-2014 - CAI Web #3: Groovy
ENIB 2013-2014 - CAI Web #3: GroovyENIB 2013-2014 - CAI Web #3: Groovy
ENIB 2013-2014 - CAI Web #3: Groovy
Horacio Gonzalez
 
Enib cours c.a.i. web - séance #5 : scala play! framework
Enib   cours c.a.i. web - séance #5 : scala play! frameworkEnib   cours c.a.i. web - séance #5 : scala play! framework
Enib cours c.a.i. web - séance #5 : scala play! framework
Horacio Gonzalez
 

Similar to Javascript - Tableaux : que fait ce code ? (20)

ALF 3 - Expressions régulières et Lexer
ALF 3 - Expressions régulières et Lexer ALF 3 - Expressions régulières et Lexer
ALF 3 - Expressions régulières et Lexer
 
Présentation Javascript à l'ESI (Alger)
Présentation Javascript à l'ESI (Alger)Présentation Javascript à l'ESI (Alger)
Présentation Javascript à l'ESI (Alger)
 
Javascript : que fait ce code?
Javascript : que fait ce code?Javascript : que fait ce code?
Javascript : que fait ce code?
 
Cours JavaScript
Cours JavaScriptCours JavaScript
Cours JavaScript
 
Réu technodejs
Réu technodejsRéu technodejs
Réu technodejs
 
Hands on lab Elasticsearch
Hands on lab ElasticsearchHands on lab Elasticsearch
Hands on lab Elasticsearch
 
Cours Ynov JS B1_1
Cours Ynov JS B1_1Cours Ynov JS B1_1
Cours Ynov JS B1_1
 
Implementing a key/value store
Implementing a key/value storeImplementing a key/value store
Implementing a key/value store
 
Javascript les générateurs (generators)
Javascript   les générateurs (generators)Javascript   les générateurs (generators)
Javascript les générateurs (generators)
 
GWT : under the hood
GWT : under the hoodGWT : under the hood
GWT : under the hood
 
Présentation Groovy
Présentation GroovyPrésentation Groovy
Présentation Groovy
 
Présentation Groovy
Présentation GroovyPrésentation Groovy
Présentation Groovy
 
cours developpement web javascript 2023/2024
cours developpement web javascript 2023/2024cours developpement web javascript 2023/2024
cours developpement web javascript 2023/2024
 
introJavaScript.ppt
introJavaScript.pptintroJavaScript.ppt
introJavaScript.ppt
 
ENIB 2013-2014 - CAI Web #3: Groovy
ENIB 2013-2014 - CAI Web #3: GroovyENIB 2013-2014 - CAI Web #3: Groovy
ENIB 2013-2014 - CAI Web #3: Groovy
 
js---Partie1----.pdf
js---Partie1----.pdfjs---Partie1----.pdf
js---Partie1----.pdf
 
Exploiter php 5
Exploiter php 5Exploiter php 5
Exploiter php 5
 
C++ 11/14
C++ 11/14C++ 11/14
C++ 11/14
 
Enib cours c.a.i. web - séance #5 : scala play! framework
Enib   cours c.a.i. web - séance #5 : scala play! frameworkEnib   cours c.a.i. web - séance #5 : scala play! framework
Enib cours c.a.i. web - séance #5 : scala play! framework
 
Découverte du moteur de rendu du projet Spartan
Découverte du moteur de rendu du projet SpartanDécouverte du moteur de rendu du projet Spartan
Découverte du moteur de rendu du projet Spartan
 

More from Ruau Mickael

L'investissement proportionnel en formation
L'investissement proportionnel en formationL'investissement proportionnel en formation
L'investissement proportionnel en formation
Ruau Mickael
 
Pour des données fiables
Pour des données fiablesPour des données fiables
Pour des données fiables
Ruau Mickael
 
Like Me I'm Famous !
Like Me I'm Famous !Like Me I'm Famous !
Like Me I'm Famous !
Ruau Mickael
 
Animer une formation : les bases
Animer une formation : les basesAnimer une formation : les bases
Animer une formation : les bases
Ruau Mickael
 
Qui a peur des estimations ?
Qui a peur des estimations ?Qui a peur des estimations ?
Qui a peur des estimations ?
Ruau Mickael
 

More from Ruau Mickael (20)

Panorama de méthodes agiles
Panorama de méthodes agilesPanorama de méthodes agiles
Panorama de méthodes agiles
 
Green web
Green webGreen web
Green web
 
Google Design Sprints v1-1
Google Design Sprints v1-1Google Design Sprints v1-1
Google Design Sprints v1-1
 
Value Proposition Design
Value Proposition DesignValue Proposition Design
Value Proposition Design
 
L'investissement proportionnel en formation
L'investissement proportionnel en formationL'investissement proportionnel en formation
L'investissement proportionnel en formation
 
Pour des données fiables
Pour des données fiablesPour des données fiables
Pour des données fiables
 
Besoin d'aide ?
Besoin d'aide ?Besoin d'aide ?
Besoin d'aide ?
 
Like Me I'm Famous !
Like Me I'm Famous !Like Me I'm Famous !
Like Me I'm Famous !
 
Animer une formation : les bases
Animer une formation : les basesAnimer une formation : les bases
Animer une formation : les bases
 
Protocamp
ProtocampProtocamp
Protocamp
 
Qui a peur des estimations ?
Qui a peur des estimations ?Qui a peur des estimations ?
Qui a peur des estimations ?
 
hacking learning
hacking learninghacking learning
hacking learning
 
Consignes épreuve de codage
Consignes épreuve de codageConsignes épreuve de codage
Consignes épreuve de codage
 
Horreurs et recrutement
Horreurs et recrutementHorreurs et recrutement
Horreurs et recrutement
 
Barbie explique IEEE754 : pourquoi les calculs informatiques sont faux?
Barbie explique IEEE754 : pourquoi les calculs informatiques sont faux?Barbie explique IEEE754 : pourquoi les calculs informatiques sont faux?
Barbie explique IEEE754 : pourquoi les calculs informatiques sont faux?
 
Barbie explique IEEE754 : pourquoi les calculs informatiques sont faux!
Barbie explique IEEE754 : pourquoi les calculs informatiques sont faux!Barbie explique IEEE754 : pourquoi les calculs informatiques sont faux!
Barbie explique IEEE754 : pourquoi les calculs informatiques sont faux!
 
Quelle(s) stratégie(s) de développement dans un monde en mouvement?
Quelle(s) stratégie(s) de développement dans un monde en mouvement?Quelle(s) stratégie(s) de développement dans un monde en mouvement?
Quelle(s) stratégie(s) de développement dans un monde en mouvement?
 
Sycfi - Twitter pour les formateurs v.1.1
Sycfi - Twitter pour les formateurs v.1.1Sycfi - Twitter pour les formateurs v.1.1
Sycfi - Twitter pour les formateurs v.1.1
 
IEEE754-pourquoi_les_calculs_informatiques_sont_faux
IEEE754-pourquoi_les_calculs_informatiques_sont_fauxIEEE754-pourquoi_les_calculs_informatiques_sont_faux
IEEE754-pourquoi_les_calculs_informatiques_sont_faux
 
IEEE754-pourquoi_les_calculs_informatiques_sont_faux
IEEE754-pourquoi_les_calculs_informatiques_sont_fauxIEEE754-pourquoi_les_calculs_informatiques_sont_faux
IEEE754-pourquoi_les_calculs_informatiques_sont_faux
 

Recently uploaded

Cours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdfCours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdf
ssuserc72852
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
ikospam0
 
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
Faga1939
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdf
AmgdoulHatim
 

Recently uploaded (18)

Cours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfCours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdf
 
Cours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdfCours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdf
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film français
 
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
L'ÉVOLUTION DE L'ÉDUCATION AU BRÉSIL À TRAVERS L'HISTOIRE ET LES EXIGENCES DE...
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film français
 
Formation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptxFormation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptx
 
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
 
Les roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptxLes roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptx
 
L application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxL application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptx
 
Chapitre 2 du cours de JavaScript. Bon Cours
Chapitre 2 du cours de JavaScript. Bon CoursChapitre 2 du cours de JavaScript. Bon Cours
Chapitre 2 du cours de JavaScript. Bon Cours
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaire
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdf
 
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetFormation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
 
Computer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptxComputer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptx
 
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfCOURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.
 

Javascript - Tableaux : que fait ce code ?

  • 1. Que fait ce code? Les tableaux en javascript
  • 2. Objectif A la fin de cette séance, vous serez capables de manipuler les tableaux indicés de javascript dans les règles de l'art. - Vous aurez assimilé la syntaxe d'assignation par littéral - Vous aurez compris et mis en oeuvre la différence entre assignation par référence et assignation par copie.
  • 3. Conditions Utilisez : - un IDE (Netbeans, Apatana) - et un navigateur avec des outils de développement (ex : Firefox avec Firebug).
  • 4. Critères d'évaluation Vous réaliserez une calculatrice à partir du code à trous fourni.
  • 5. Références http://www.ecmascript.org/ ECMAScript Language Specification Standard ECMA-262 3rd Edition - December 1999 ECMA-262 5.1 Edition - June 2011 http://www.crockford.com/javascript/survey.html
  • 6. Que va-t-il sortir du chapeau? var tCaisseMagique = ["colombe", "foulard", "billet"]; var tChapeau = tCaisseMagique ; tCaisseMagique [3] = "lapin!"; console.log(tChapeau);
  • 7. Assignation par valeur ou référence Les tableaux sont manipulés par référence. Autrement dit, si on modifie le tableau issu de l'assignation, le tableau original est modifié. Ex : nous avons assigné la référence de tCaisseMagique à la variable tChapeau. Les deux variables tCaisseMagique et tChapeau utilisent la même référence : elles pointent sur la même adresse mémoire. Toute modification de l'une ou l'autre de ces variables modifie le contenu de cet espace mémoire commun. Si l'on veut dédoubler un tableau on utilise la méthode slice qui retourne une copie du tableau (et non la référence à ce tableau) : var tChiffres = ["un", "deux", "trois"]; var tNombresPremiers = tChiffres.slice(); tChiffres[3] = "quatre"; alert(tNombresPremiers);
  • 8. Je ne suis pas (qu'un) objet! tFruits = new Array("Poires"); alert(tFruits[0]); tFruits.unshift("Pommes"); alert(tFruits[0]); alert(tFruits); tFruits[10] = "Ananas"; alert(tFruits); var oDernierElement = tFruits[tFruits.length-1]; alert(oDernierElement);
  • 9. Je ne suis pas (qu'un) objet! (suite) var oAuteur = new Object(); oAuteur["Melody Nelson"] = "Gainsbourg"; oAuteur["Pet Sounds"] = "Wilson"; alert(oAuteur["Pet Sounds"]); alert(oAuteur);
  • 10. Iterateurs var oAuteurs = new Object(); oAuteurs["Melody Nelson"] = "Gainsbourg"; oAuteurs["Pet Sounds"] = "Wilson"; console.log("Liste des clés (les morceaux) : "); for(var uneClef in oAuteurs){ console.log(uneClef); } console.log("Liste des valeurs associées à ces clés (les auteurs) : "); for(var uneClef in oAuteurs){ console.log(oAuteurs[uneClef]); }
  • 11. Iterateurs (suite) var oAuteurs = new Object(); oAuteurs["Melody Nelson"] = "Gainsbourg"; oAuteurs["Pet Sounds"] = "Wilson"; for(var iAuteur= 0; iAuteur < oAuteurs.length; iAuteurs++) { console.log(oAuteurs[iAuteur]); }
  • 12. Conclusion? Quelle conclusion en tirez-vous sur la relation entre tableaux et objets en Javascript?
  • 13. Les objets sont des tableaux Object est un hashtable (tableau associatif) : une liste non ordonnée de paires clé-valeur. Ex : monObjet = {"cle1": "valeur1", "cle2": "valeur2"};
  • 14. In the mix http://jacques-guizol.developpez.com/javascript/Tableaux/Tableaux.php t = [false]; console.log(t); t.concat("ko"); console.log(t); t = t.concat(1); console.logt(t); t = t.concat("ii"); t = t.concat(pi=3.14); t = t.concat([4,5]); t = t.concat([6,["vii","viii"]]); t = t.concat("ix",new Array(10,11), 12); console.log(t); console.log(t[7]); console.log(t[9]); console.log(t[7][0]);
  • 15. On enchaîne! s = t.join(" <> "); alert(s); s = "c h e b a m"; t = s.split(" "); alert(t); s[0] = "ko"; alert(s);
  • 16. Conclusion? Quelle conclusion en tirez-vous sur la relation entre tableaux et chaînes en Javascript?
  • 18. Code à trous Complétez le code source fourni ("minicalc"). Lorsque l'utilisateur appuie sur le bouton d'un opérateur arithmétique: la valeur saisie ou l'opérateur choisi est mémorisé Lorsque l'utilisateur appuie sur le bouton "=", l'opération est exécutée et le résultat est affiché dans le champ de saisie. (Cette calculatrice ne sait réaliser qu'une opération simple à la fois).
  • 19. Vrai ou faux? Que fait ce code?
  • 20. Le côté obscur ... var t1 = []; if(t1 || !t2) { sMsg = "Non, n'essaie pas ! " + "Fais-le, ou ne le fais pas!"; alert (sMsg); }
  • 22. Fin
  • 23. La série “Que fait ce code?” de Mickael Ruau est mise à disposition selon les termes de la licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International. Les autorisations au-delà du champ de cette licence peuvent être obtenues à creativecommons@ShakerTechnologies.com.

Editor's Notes

  1. En javascript les chaines ont immutables