Javascript fondamentaux
ThĂšme :
Intermédiaire
2 vues ·18/19 leçons

📋 É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 innerWidth et innerHeight
  • Affichez la largeur et la hauteur totales avec outerWidth et outerHeight
  • Testez en redimensionnant la fenĂȘtre

Exercice 1.2 : Position du scroll

  • Affichez la position du scroll avec scrollX et scrollY
  • 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 online et offline
  • 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.userAgent pour 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 URLSearchParams pour extraire les paramĂštres
  • Affichez les valeurs

Exercice 3.3 : Redirection

  • CrĂ©ez un bouton “Aller Ă  Google”
  • Utilisez location.href pour 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.width et screen.height
  • Affichez les dimensions disponibles avec screen.availWidth et screen.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.width pour 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 :

  1. Créer des bulles :

    • Toutes les secondes, crĂ©ez une nouvelle bulle
    • Taille alĂ©atoire (100-200px)
    • Position alĂ©atoire
  2. Animation :

    • Les bulles montent vers le haut
    • Direction alĂ©atoire (gauche ou droite)
    • DurĂ©e de 8 secondes
  3. Interaction :

    • Clic sur une bulle = +1 au compteur
    • Afficher le compteur en gros chiffres
  4. 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 :

  1. Affichage :

    • Afficher le temps en format MM:SS
    • Afficher une barre de progression
  2. ContrĂŽles :

    • Bouton “DĂ©marrer”
    • Bouton “Pause”
    • Bouton “RĂ©initialiser”
    • Champ pour saisir le temps initial
  3. 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 :

  1. Affichage :

    • Afficher l’heure en format HH:MM:SS
    • Afficher la date (jour, mois, annĂ©e)
  2. Mise Ă  jour :

    • Mettre Ă  jour chaque seconde
    • Utiliser setInterval()
  3. 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.