SlideShare une entreprise Scribd logo
Que fait ce code?
Les types primitifs de Javascript
Objectif
A la fin de cette séance, vous serez capables de réaliser
des programmes en javascript utilisant les types primitifs
(String, Number, Boolean).
- Vous aurez expliqué les pièges de l'opérateur + ("plus")
- Vous aurez expliqué les pièges de la fonction eval()
- Vous aurez mis en oeuvre une méthode de vérification
des types manipulés, avec la fonction typeof et/ou
l'opérateur de stricte égalité.
Critères d'évaluation
En groupe :
- vous expliquerez les pièges de l'opérateur + ("plus")
Individuellement :
- vous expliquerez les pièges de la fonction eval()
- vous réaliserez les fonctions de base d'une calculatrice à
partir du code à trous fourni. A cette occasion, vous
mettrez en oeuvre une méthode de vérification des types
manipulés, avec la fonction typeof et/ou l'opérateur de
stricte égalité.
Conditions
Utilisez :
- un IDE (Netbeans, Apatana)
- et un navigateur avec des outils de développement (ex :
Firefox avec Firebug).
Références
http://www.w3.org/community/webed/wiki/Main_Page#JavaScript_core_skills
http://www.crockford.com/javascript/survey.html
http://www.peachpit.com/articles/article.aspx?p=1847297&seqNum=2
http://www.gchagnon.fr/cours/dhtml/
http://fr.wikipedia.org/wiki/Syntaxe_JavaScript
http://fr.wikibooks.org/wiki/Programmation_JavaScript/
http://www.commentcamarche.net/contents/javascript/
https://developer.mozilla.org/fr/docs/JavaScript
http://www.xul.fr/ecmascript/
http://msdn.microsoft.com/en-us/library/ie/d1et7k7c(v=vs.94).aspx
http://dev.opera.com/articles/view/javascript-best-practices/
Nombres et chaînes
Les nombres
function additionner()
{
var iResult = 0;
for(i = 0; i < arguments.length; i++)
{
iResult += arguments[i];
}
return iResult ;
}
alert(additionner(1,2,3)); // affiche "6"
Les chaînes de caractères
function concatener()
{
var sResult = "";
for(i = 0; i < arguments.length; i++)
{
sResult += arguments[i];
}
return sResult;
}
alert(concatener("Concaténation ","de ","chaînes."));
// Affiche "Concaténation de chaînes"
Opération sans douleur?
/* Que se passe-t-il maintenant?
*/
var n1 = '1', n2 = '2', n3 = '3';
alert(additionner(n1, n2, n3)); // Affiche "0123"
Les chaînes ont du caractère...
/* Que se passe-t-il maintenant?
*/
var s1 = 1, s2 = 2, s3 = 3;
alert(concatener(s1, s2, s3)); //affiche "123"
Quelles solutions?
Que proposez-vous pour remédier à ces
comportements "étranges"?
Explication
http://fr.wikipedia.org/wiki/Syntaxe_JavaScript
L'opérateur '+' est surchargé; il est utilisé pour la concaténation de chaîne de
caractères et l'addition ainsi que la conversion de chaînes de caractères en
nombres.
// Concatène une chaîne et un nombre
var x = 2;
alert( x + '2'); // affiche 22
// Convertit une chaîne en nombre
var z = '4'; // z est une chaîne (le caractère 4)
alert( z + x); // affiche 42
alert( +z + x); // affiche 6
Construisons ensemble
une calculatrice
Eval is evil
Créez un bouton en html (<input type="button">).
Lorsque l'utilisateur appuie sur le bouton, l'opération
mathématique est exécutée à l'aide de la fonction native
eval() et le résultat est affiché dans une fenêtre de
dialogue.
Ex.a : alert(eval(1+2));
Ex.b : eval(alert(1+2));
1- Quelles sont les différences entre ces deux exemples?
2- Quels avantages et inconvénients y-a-t-il à utiliser la
fonction eval()?
Code à trou : protoCalc
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript">
function additionner()
{
var iResult = 0;
for(i = 0; i < arguments.length; i++)
{
iResult += arguments[i];
}
return iResult ;
}
</script>
</head>
<body>
<form name="frm_calcul">
<input type="button" value="1+2" name="addition" onclick="alert(additionner(1,2));" />
<input type="button" value="1+'2'" name="addition_v2" onclick="alert(additionner(1,'2'));" />
<input type="button" value="'1'+2" name="addition_v3" onclick="alert(additionner('1',2));" />
<input type="button" value="'1'+'2'" name="addition_v4" onclick="alert(additionner('1','2'));" />
</form>
</body>
</html>
Typeof()
Créez une fonction réalisant une des 4 opérations arithmétique de base
(addition, ou soustraction, ou multiplication, ou division).
Vérifiez les saisies utilisateur à l'aide de l'opérateur de stricte égalité (===) ou
de la la fonction typeof().
Ex : alert(typeof("1"));
Notes :
- javascript est sensible à la casse : typeof s'écrit entièrement en minuscules
- il n'existe qu'un seul type pour stocker les nombres, quels qu'ils soient
(entiers, flottants, etc.) : la classe Number.
Vrai ou faux?
Que fait ce code?
Jeu de Boole
var bTest = new Boolean(0);
if(bTest )
{
sMsg = "I'm sorry Dave."
+ " I'm afraid I Can't do that...";
alert (sMsg);
}
Bilan
Objectif atteint?
Critères d'évaluation
En groupe :
- avez-vous expliqué les pièges de l'opérateur + ("plus")?
Individuellement :
- avez-vous expliqué les pièges de la fonction eval()?
- avez-vous réalisé les fonctions de base d'une calculatrice
à partir du code à trous fourni? A cette occasion, avez-vous
mis en oeuvre une méthode de vérification des types
manipulés, avec la fonction typeof et/ou l'opérateur de
stricte égalité?
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.

Contenu connexe

ODP
Introduction à JavaScript
PPTX
Présentation de ECMAScript 6
PPTX
Javascript un langage supérieur
PPTX
Cours javascript v1
PDF
Javascript les générateurs (generators)
PPTX
Initiation au code : Ateliers en C# (applications desktop et mobile native)
PDF
Université des langages scala
PDF
Corrige tp java
Introduction à JavaScript
Présentation de ECMAScript 6
Javascript un langage supérieur
Cours javascript v1
Javascript les générateurs (generators)
Initiation au code : Ateliers en C# (applications desktop et mobile native)
Université des langages scala
Corrige tp java

Tendances (20)

PPTX
Cours tp2
PPTX
Change mind about JS
PPT
Formation C# - Cours 2 - Programmation procédurale
PPTX
Les bases du javascript
PDF
Javascript pour les Développeurs WEB
PDF
Caml intro
 
PDF
Notions de base de JavaScript
PPT
Les fondamentaux du langage C
PPTX
mis
PDF
Memo java
PDF
Cours c#
 
PDF
Les fonctions lambdas en C++11 et C++14
PPTX
Python For Data Science - French Course
PPTX
Cours de C++ / Tronc commun deuxième année ISIMA
PPTX
C# et .NET : Enigmes et puzzles
PDF
C++ 11/14
PPTX
C++11 en 12 exemples simples
PPTX
cpp1 : Quelques elements de base du C++
PDF
C1 - Langage C - ISIMA - Première partie
PDF
Ch11
Cours tp2
Change mind about JS
Formation C# - Cours 2 - Programmation procédurale
Les bases du javascript
Javascript pour les Développeurs WEB
Caml intro
 
Notions de base de JavaScript
Les fondamentaux du langage C
mis
Memo java
Cours c#
 
Les fonctions lambdas en C++11 et C++14
Python For Data Science - French Course
Cours de C++ / Tronc commun deuxième année ISIMA
C# et .NET : Enigmes et puzzles
C++ 11/14
C++11 en 12 exemples simples
cpp1 : Quelques elements de base du C++
C1 - Langage C - ISIMA - Première partie
Ch11
Publicité

En vedette (20)

DOC
CUIMPB DIBA. CRISIS: RETOS Y OPORTUNIDADES DEL URBANISMO Y LAS POLÍTICAS PÚBL...
PDF
Webcollaboration valence2013springer
PDF
Acuerdo 018 02 diciembre 2010 calendario academico 2011 i
PDF
Interlat Group Estudio Latinoamericano de Comercio Electronico 2015
PDF
La Réunion : le 1er spot du monde pour le canyoning
PPTX
CETARES
 
PPT
Updatedelete
ODP
Trabajo De Vir Y Cynthia[1] Terminado[1]
PPT
Ratatouille°34
PPT
Oral cancer du sein
PDF
Epicure lettre a_menecee_trad._salem
PPS
Histoires coquines
PDF
Loi c28
PPS
Superbe chute
PPT
El CPU
PPT
Centro de Tecnología Educativa de Tacuarembó. Presentación Encuentro BTM 2009...
PDF
Noticias Agosto 09
PPS
Petite annonce ms
PPS
Cell Instituto de Idiomas
CUIMPB DIBA. CRISIS: RETOS Y OPORTUNIDADES DEL URBANISMO Y LAS POLÍTICAS PÚBL...
Webcollaboration valence2013springer
Acuerdo 018 02 diciembre 2010 calendario academico 2011 i
Interlat Group Estudio Latinoamericano de Comercio Electronico 2015
La Réunion : le 1er spot du monde pour le canyoning
CETARES
 
Updatedelete
Trabajo De Vir Y Cynthia[1] Terminado[1]
Ratatouille°34
Oral cancer du sein
Epicure lettre a_menecee_trad._salem
Histoires coquines
Loi c28
Superbe chute
El CPU
Centro de Tecnología Educativa de Tacuarembó. Presentación Encuentro BTM 2009...
Noticias Agosto 09
Petite annonce ms
Cell Instituto de Idiomas
Publicité

Similaire à Javascript : que fait ce code? (20)

PDF
Cours java script
PPTX
Javascript - Fonctions : que fait ce code ?
PPTX
Présentation Javascript à l'ESI (Alger)
PDF
Fiche de TD 1 de préparation probatoire (littéraire et scientifique) du Camer...
PDF
Cours_Java. Skzozibb nsif keizijfbjzozzml keiei tjeiz9rkr
PDF
Slides octave1
PDF
Fondamentaux portée - contexte - function ms tech days
PPT
Eléments de base du langage JavaScript (1).ppt
PDF
cours developpement web javascript 2023/2024
PDF
Vert.x 3
PPTX
cours détaillé python premier annee OFPPT.pptx
PPTX
cours détaillé python premier annee OFPPT.pptx
PPT
IEEE754-pourquoi_les_calculs_informatiques_sont_faux
PPTX
Introduction à TypeScript,language de programmation
PDF
js---Partie1----.pdf
PPTX
javascript cours developpement nbhdjcbhdcjbn
PPTX
Barbie explique IEEE754 : pourquoi les calculs informatiques sont faux?
PDF
Javascript Json artchitecture
PDF
Les bases de la programmation en JAVA
PDF
Python + ansible = ♥
Cours java script
Javascript - Fonctions : que fait ce code ?
Présentation Javascript à l'ESI (Alger)
Fiche de TD 1 de préparation probatoire (littéraire et scientifique) du Camer...
Cours_Java. Skzozibb nsif keizijfbjzozzml keiei tjeiz9rkr
Slides octave1
Fondamentaux portée - contexte - function ms tech days
Eléments de base du langage JavaScript (1).ppt
cours developpement web javascript 2023/2024
Vert.x 3
cours détaillé python premier annee OFPPT.pptx
cours détaillé python premier annee OFPPT.pptx
IEEE754-pourquoi_les_calculs_informatiques_sont_faux
Introduction à TypeScript,language de programmation
js---Partie1----.pdf
javascript cours developpement nbhdjcbhdcjbn
Barbie explique IEEE754 : pourquoi les calculs informatiques sont faux?
Javascript Json artchitecture
Les bases de la programmation en JAVA
Python + ansible = ♥

Plus de Ruau Mickael (20)

PDF
#SprintMission semaine 3/4 : 1 mission en 1 mois !
PDF
Portfolio Agile Master - Références de Mickael Ruau
PDF
#SprintMission semaine 2/4 : 1 mission en 1 mois !
PDF
#SprintMission semaine 1/4 : 1 mission en 1 mois !
PDF
Dix Program Managers et profils QA-Automation
PPTX
Prisonware épisode 1 - qualité logicielle
PDF
Agile Laval - Atelier interactif sur Scrum Shock Therapy
PPTX
Humantalks - La malédiction de la V2 (Human Talks Angers du 12 septembre 2023)
PPTX
MentorTech_-_masterclass_diversifier_et_securiser_ses_revenus.pptx
PPTX
Panorama de méthodes agiles
PDF
Green web
PPTX
Javascript objet : que fait ce code ?
PPTX
Javascript - Tableaux : que fait ce code ?
PPTX
Google Design Sprints v1-1
PPTX
Value Proposition Design
PDF
Pour des données fiables
PDF
Animer une formation : les bases
PPTX
Qui a peur des estimations ?
PDF
hacking learning
PDF
Consignes épreuve de codage
#SprintMission semaine 3/4 : 1 mission en 1 mois !
Portfolio Agile Master - Références de Mickael Ruau
#SprintMission semaine 2/4 : 1 mission en 1 mois !
#SprintMission semaine 1/4 : 1 mission en 1 mois !
Dix Program Managers et profils QA-Automation
Prisonware épisode 1 - qualité logicielle
Agile Laval - Atelier interactif sur Scrum Shock Therapy
Humantalks - La malédiction de la V2 (Human Talks Angers du 12 septembre 2023)
MentorTech_-_masterclass_diversifier_et_securiser_ses_revenus.pptx
Panorama de méthodes agiles
Green web
Javascript objet : que fait ce code ?
Javascript - Tableaux : que fait ce code ?
Google Design Sprints v1-1
Value Proposition Design
Pour des données fiables
Animer une formation : les bases
Qui a peur des estimations ?
hacking learning
Consignes épreuve de codage

Dernier (20)

PPTX
Formation Equipement de protection .pptx
PPTX
risque environnema et mesure protect.pptx
PPTX
Bienvenido slides about the first steps in spanish.pptx
PPTX
SESSION4-SUPPORT-DE-COURS-FLEC-(Future leader en énergie au Cameroun)-CECOSDA...
PPTX
SESSION5-SUPPORT-DE-COURS-FLEC-(Future leader en énergie au Cameroun)-CECOSDA...
PPTX
Le rendez-vous de l'été.pptx Film français
PPTX
le-present-de-lindicatif-ou-le-subjonctif-present-exercice-grammatical-feuill...
PDF
_LEAN_MANAGEMENT_Am_lioration_continue_�_1724845102.pdf
PPT
Les moyens de transport-2023.ppt french language teaching ppt
PPTX
SESSION3-SUPPORT-DE-COURS-FLEC-(Future leader en énergie au Cameroun)-CECOSDA...
PPTX
Presentation_carte_arduino_uno_1_Entree_Sortie_numerique.pptx
PDF
Avis Digital Marketing Elite: Mon Retour d'Expérience Après 3 Mois d'Utilisation
PDF
🎓 Le Secret des Profs Captivants - 💡 2. Hygiène vocale et santé professionnel...
PDF
Referentiel des metiers cadres dans la banque
PPT
le-subjonctif-présent, Grammaire, français
PPTX
Fondamentaux du LMD.pptx pour les etudiants
PPTX
SESSION1-SUPPORT-DE-COURS-FLEC-(Future leader en énergie au Cameroun)-CECOSDA...
PPTX
SESSION2-SUPPORT-DE-COURS-FLEC-(Future leader en énergie au Cameroun)-CECOSDA...
DOCX
ENDODONTIE CONSERVATRICE.docx faculté de médecine dentaire
PPT
calcul---électrique--et--chutes de tension.ppt
Formation Equipement de protection .pptx
risque environnema et mesure protect.pptx
Bienvenido slides about the first steps in spanish.pptx
SESSION4-SUPPORT-DE-COURS-FLEC-(Future leader en énergie au Cameroun)-CECOSDA...
SESSION5-SUPPORT-DE-COURS-FLEC-(Future leader en énergie au Cameroun)-CECOSDA...
Le rendez-vous de l'été.pptx Film français
le-present-de-lindicatif-ou-le-subjonctif-present-exercice-grammatical-feuill...
_LEAN_MANAGEMENT_Am_lioration_continue_�_1724845102.pdf
Les moyens de transport-2023.ppt french language teaching ppt
SESSION3-SUPPORT-DE-COURS-FLEC-(Future leader en énergie au Cameroun)-CECOSDA...
Presentation_carte_arduino_uno_1_Entree_Sortie_numerique.pptx
Avis Digital Marketing Elite: Mon Retour d'Expérience Après 3 Mois d'Utilisation
🎓 Le Secret des Profs Captivants - 💡 2. Hygiène vocale et santé professionnel...
Referentiel des metiers cadres dans la banque
le-subjonctif-présent, Grammaire, français
Fondamentaux du LMD.pptx pour les etudiants
SESSION1-SUPPORT-DE-COURS-FLEC-(Future leader en énergie au Cameroun)-CECOSDA...
SESSION2-SUPPORT-DE-COURS-FLEC-(Future leader en énergie au Cameroun)-CECOSDA...
ENDODONTIE CONSERVATRICE.docx faculté de médecine dentaire
calcul---électrique--et--chutes de tension.ppt

Javascript : que fait ce code?

Notes de l'éditeur

  • #8: Créer des bookmarklets et/ou tiliser maqetta ou http://jsfiddle.net/ pour coder et tester
  • #19: Prétexte à revoir/découvrir tout ce qui peut être converti en booléen (nombre, chaine, objet) et les valeurs prises. https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Boolean Do not confuse the primitive Boolean values true and false with the true and false values of the Boolean object. Any object whose value is not undefined or null, including a Boolean object whose value is false, evaluates to true when passed to a conditional statement. For example, the condition in the following if statement evaluates to true.