đ ĂnoncĂ©s des TPs - BOM, MĂ©thodes Tableaux et ChaĂźnes
TP 1 : Lâobjet Window
Vous devez explorer et utiliser lâobjet window.
Exercice 1.1 : Dimensions de la fenĂȘtre
- Affichez la largeur et la hauteur de la fenĂȘtre avec
innerWidthetinnerHeight - Affichez la largeur et la hauteur totales avec
outerWidthetouterHeight - Testez en redimensionnant la fenĂȘtre
Exercice 1.2 : Position du scroll
- Affichez la position du scroll avec
scrollXetscrollY - Créez une page longue avec beaucoup de contenu
- Testez en scrollant
Exercice 1.3 : Redimensionnement de fenĂȘtre
- Ăcoutez lâĂ©vĂ©nement
resize - Affichez les nouvelles dimensions Ă chaque redimensionnement
- Testez en redimensionnant
Exercice 1.4 : Scroll
- Ăcoutez lâĂ©vĂ©nement
scroll - Affichez la position du scroll Ă chaque scroll
- Créez une barre de progression basée sur le scroll
TP 2 : Lâobjet Navigator
Vous devez explorer lâobjet navigator.
Exercice 2.1 : Infos du navigateur
- Affichez la langue avec
navigator.language - Affichez le user agent avec
navigator.userAgent - Affichez la plateforme avec
navigator.platform
Exercice 2.2 : Connexion internet
- Affichez lâĂ©tat de la connexion avec
navigator.onLine - Ăcoutez les Ă©vĂ©nements
onlineetoffline - Affichez un message quand la connexion change
Exercice 2.3 : Infos matériel
- Affichez le nombre de processeurs avec
navigator.hardwareConcurrency - Affichez la mémoire disponible avec
navigator.deviceMemory
Exercice 2.4 : Détecter le navigateur
- Utilisez
navigator.userAgentpour dĂ©tecter le navigateur - Affichez âChromeâ, âFirefoxâ, âSafariâ ou âAutreâ
TP 3 : Lâobjet Location
Vous devez explorer et modifier lâobjet location.
Exercice 3.1 : Lire lâURL
- Affichez lâURL complĂšte avec
location.href - Affichez le nom de domaine avec
location.hostname - Affichez le chemin avec
location.pathname - Affichez les paramĂštres avec
location.search
Exercice 3.2 : Extraire les paramĂštres
- Créez une URL avec des paramÚtres :
?nom=Eva&age=25 - Utilisez
URLSearchParamspour extraire les paramĂštres - Affichez les valeurs
Exercice 3.3 : Redirection
- CrĂ©ez un bouton âAller Ă Googleâ
- Utilisez
location.hrefpour rediriger - Testez la redirection
Exercice 3.4 : Recharger la page
- CrĂ©ez un bouton âRechargerâ
- Utilisez
location.reload()pour recharger - Testez
Exercice 3.5 : Lire lâancre (hash)
- Créez une URL avec une ancre :
#section-contact - Lisez lâancre avec
location.hash - Scroller vers la section correspondante
TP 4 : Lâobjet History
Vous devez utiliser lâobjet history.
Exercice 4.1 : Naviguer dans lâhistorique
- CrĂ©ez un bouton âRetourâ
- Utilisez
history.back()pour revenir à la page précédente - Testez
Exercice 4.2 : Boutons de navigation
- CrĂ©ez un bouton âRetourâ avec
history.back() - CrĂ©ez un bouton âSuivantâ avec
history.forward() - Testez les deux
Exercice 4.3 : VĂ©rifier lâhistorique
- Affichez le nombre de pages dans lâhistorique avec
history.length - Affichez un message si lâutilisateur peut revenir
TP 5 : Lâobjet Screen
Vous devez explorer lâobjet screen.
Exercice 5.1 : Dimensions de lâĂ©cran
- Affichez la largeur et la hauteur de lâĂ©cran avec
screen.widthetscreen.height - Affichez les dimensions disponibles avec
screen.availWidthetscreen.availHeight
Exercice 5.2 : Profondeur de couleur
- Affichez la profondeur de couleur avec
screen.colorDepth - Affichez le résultat
Exercice 5.3 : Adapter le layout
- Utilisez
screen.widthpour adapter le layout - Affichez âMobileâ si < 768px
- Affichez âTabletteâ si < 1024px
- Affichez âDesktopâ sinon
TP 6 : Dialogues - alert, confirm, prompt
Vous devez utiliser les dialogues du navigateur.
Exercice 6.1 : Alert
- Créez un bouton qui affiche une alerte
- Testez
Exercice 6.2 : Confirm
- Créez un bouton qui demande une confirmation
- Affichez âOKâ ou âAnnulĂ©â selon la rĂ©ponse
- Testez
Exercice 6.3 : Prompt
- Créez un bouton qui demande un nom
- Affichez le nom saisi
- Testez
Exercice 6.4 : ChaĂźner les dialogues
- Demandez le nom avec
prompt() - Demandez la confirmation avec
confirm() - Affichez le résultat
TP 7 : Temporisation - setTimeout
Vous devez utiliser setTimeout().
Exercice 7.1 : Délai simple
- Créez un bouton
- Au clic, affichez un message aprĂšs 3 secondes
- Testez
Exercice 7.2 : Annuler un délai
- CrĂ©ez un bouton âDĂ©marrerâ qui lance un dĂ©lai de 5 secondes
- CrĂ©ez un bouton âAnnulerâ qui annule le dĂ©lai
- Utilisez
clearTimeout() - Testez
Exercice 7.3 : Minuteur
- Créez un minuteur qui compte de 10 à 0
- Affichez le temps restant
- Affichez âTemps Ă©coulĂ©â Ă la fin
- Testez
TP 8 : Temporisation - setInterval
Vous devez utiliser setInterval().
Exercice 8.1 : Intervalle simple
- Créez un intervalle qui affiche un message toutes les 2 secondes
- Testez
Exercice 8.2 : ArrĂȘter un intervalle
- CrĂ©ez un bouton âDĂ©marrerâ qui lance un intervalle
- CrĂ©ez un bouton âArrĂȘterâ qui arrĂȘte lâintervalle
- Utilisez
clearInterval() - Testez
Exercice 8.3 : Horloge
- CrĂ©ez une horloge qui affiche lâheure actuelle
- Mettez Ă jour chaque seconde
- Testez
Exercice 8.4 : Animation avec intervalle
- Créez une barre qui se remplit progressivement
- Utilisez
setInterval()pour augmenter la largeur - ArrĂȘtez quand elle est pleine
- Testez
TP 9 : Méthodes de Tableaux - Ajouter/Supprimer
Vous devez utiliser les méthodes pour ajouter/supprimer des éléments.
Exercice 9.1 : push() et pop()
- Créez un tableau
fruits = ['pomme', 'banane'] - Utilisez
push()pour ajouter âorangeâ - Utilisez
pop()pour supprimer le dernier élément - Affichez le résultat
Exercice 9.2 : shift() et unshift()
- Créez un tableau de nombres
- Utilisez
shift()pour supprimer le premier élément - Utilisez
unshift()pour ajouter un élément au début - Affichez le résultat
Exercice 9.3 : slice()
- Créez un tableau de 10 nombres
- Utilisez
slice()pour extraire les 3 premiers - Utilisez
slice()pour extraire les 3 derniers - VĂ©rifiez que le tableau original nâest pas modifiĂ©
Exercice 9.4 : splice()
- Créez un tableau de fruits
- Utilisez
splice()pour supprimer 2 Ă©lĂ©ments Ă partir de lâindex 1 - Utilisez
splice()pour ajouter des éléments - Affichez le résultat
TP 10 : Méthodes de Tableaux - Chercher
Vous devez utiliser les méthodes pour chercher des éléments.
Exercice 10.1 : indexOf()
- Créez un tableau de nombres
- Utilisez
indexOf()pour trouver la position dâun nombre - Testez avec un nombre qui existe et un qui nâexiste pas
Exercice 10.2 : includes()
- Créez un tableau de fruits
- Utilisez
includes()pour vĂ©rifier si une fruit existe - Testez avec un fruit qui existe et un qui nâexiste pas
Exercice 10.3 : find()
- CrĂ©ez un tableau dâutilisateurs
- Utilisez
find()pour trouver le premier utilisateur avec age > 25 - Testez
Exercice 10.4 : findIndex()
- Utilisez
findIndex()pour trouver lâindex du premier utilisateur avec age > 25 - Testez
TP 11 : Méthodes de Chaßnes - Transformation
Vous devez utiliser les méthodes pour transformer des chaßnes.
Exercice 11.1 : toLowerCase() et toUpperCase()
- Créez une chaßne
texte = "Bonjour JavaScript" - Convertissez en minuscules
- Convertissez en majuscules
- Affichez les résultats
Exercice 11.2 : trim()
- Créez une chaßne avec des espaces :
" Bonjour " - Utilisez
trim()pour supprimer les espaces - Affichez le résultat
Exercice 11.3 : split()
- Créez une chaßne :
"pomme,banane,orange" - Utilisez
split()pour convertir en tableau - Affichez le résultat
Exercice 11.4 : replace()
- Créez une chaßne :
"Bonjour JavaScript" - Utilisez
replace()pour remplacer âJavaScriptâ par âJSâ - Utilisez
replaceAll()pour remplacer toutes les occurrences - Affichez les résultats
TP 12 : Méthodes de Chaßnes - Vérification
Vous devez utiliser les méthodes pour vérifier des chaßnes.
Exercice 12.1 : includes()
- Créez une chaßne
texte = "Bonjour JavaScript" - Utilisez
includes()pour vĂ©rifier si elle contient âJavaâ - Testez avec un mot qui existe et un qui nâexiste pas
Exercice 12.2 : startsWith() et endsWith()
- Utilisez
startsWith()pour vĂ©rifier si elle commence par âBonâ - Utilisez
endsWith()pour vĂ©rifier si elle finit par âScriptâ - Testez
Exercice 12.3 : charAt() et charCodeAt()
- Créez une chaßne
- Utilisez
charAt()pour obtenir le caractĂšre Ă la position 0 - Utilisez
charCodeAt()pour obtenir le code du caractÚre - Affichez les résultats
Exercice 12.4 : length
- Créez une chaßne
- Affichez sa longueur avec
length - Testez avec différentes chaßnes
TP 13 : Méthodes de Chaßnes - Formatage
Vous devez utiliser les méthodes pour formater des chaßnes.
Exercice 13.1 : repeat()
- Créez une chaßne
"Ha" - Utilisez
repeat()pour la répéter 5 fois - Affichez le résultat
Exercice 13.2 : padStart()
- Créez un numéro :
"42" - Utilisez
padStart()pour ajouter des zéros au début (5 caractÚres) - Affichez le résultat
Exercice 13.3 : padEnd()
- Créez un numéro :
"42" - Utilisez
padEnd()pour ajouter des zéros à la fin (5 caractÚres) - Affichez le résultat
Exercice 13.4 : slice() et substring()
- Créez une chaßne
- Utilisez
slice()pour extraire une partie - Utilisez
substring()pour extraire une partie - Comparez les résultats
TP 14 : Projet - Générateur de Bulles
CrĂ©ez une animation interactive oĂč des bulles apparaissent et disparaissent.
Fonctionnalités requises :
-
Créer des bulles :
- Toutes les secondes, créez une nouvelle bulle
- Taille aléatoire (100-200px)
- Position aléatoire
-
Animation :
- Les bulles montent vers le haut
- Direction aléatoire (gauche ou droite)
- Durée de 8 secondes
-
Interaction :
- Clic sur une bulle = +1 au compteur
- Afficher le compteur en gros chiffres
-
Suppression :
- AprĂšs 8 secondes, la bulle disparaĂźt
- Ou au clic
Bonus :
- Changer la couleur des bulles
- Ajouter des effets de rotation
- Augmenter la vitesse avec le temps
- Ajouter du son au clic
TP 15 : Projet - Minuteur Interactif
Créez un minuteur avec contrÎles.
Fonctionnalités requises :
-
Affichage :
- Afficher le temps en format MM:SS
- Afficher une barre de progression
-
ContrĂŽles :
- Bouton âDĂ©marrerâ
- Bouton âPauseâ
- Bouton âRĂ©initialiserâ
- Champ pour saisir le temps initial
-
Fonctionnalité :
- Compte Ă rebours
- Afficher âTemps Ă©coulĂ©â Ă la fin
- Son ou alerte Ă la fin
Bonus :
- Afficher le temps en HH:MM:SS
- Ajouter un chronomĂštre (compte vers le haut)
- Sauvegarder le temps dans localStorage
- Afficher lâhistorique des minuteurs
TP 16 : Projet - Horloge Numérique
CrĂ©ez une horloge qui affiche lâheure actuelle.
Fonctionnalités requises :
-
Affichage :
- Afficher lâheure en format HH:MM:SS
- Afficher la date (jour, mois, année)
-
Mise Ă jour :
- Mettre Ă jour chaque seconde
- Utiliser
setInterval()
-
Styles :
- Affichage clair et lisible
- Fond sombre ou clair
Bonus :
- Ajouter une horloge analogique
- Afficher le fuseau horaire
- Afficher lâheure dans diffĂ©rents fuseaux
- Afficher le jour de la semaine
đ Conseils pour rĂ©aliser les TPs
â TP 1-5 : Explorez les objets du BOM â TP 6-8 : MaĂźtrisez les dialogues et la temporisation â TP 9-13 : Apprenez les mĂ©thodes de tableaux et chaĂźnes â TP 14-16 : Combinez tout pour des projets complets
â
Testez chaque exercice dans la console
â
Utilisez console.log() pour déboguer
â
Consultez la documentation MDN
â
Commencez simple, puis ajoutez les bonus
PrĂȘt Ă passer Ă la suite ?
Vous avez terminĂ© cette leçon sur đ ĂnoncĂ©s des TPs - BOM, MĂ©thodes Tableaux et ChaĂźnes. Continuez votre apprentissage avec la prochaine leçon ou explorez d'autres formations.