---
# System prepended metadata

title: Révision Javascript (Partie 2)

---


Un objet javascript peut être créé de deux manières différentes
```javascript
let obj = new Object(); // "object constructor" syntax
let obj = {};  // "object literal" syntax
```

Identifiez-vous des erreurs dans la déclaration suivante ? 

```javascript
let obj = {
    "key_1" : value,
    key_2 : true,
    "key 3" : "value",
    [key4] : 5,
}
```

- Ecrivez une fonction ``createStudent(firstName, lastName, email, age, notes)`` qui permet de créer et renvoyer un objet dont les valeurs de ces propriétés sont données en arguments de la fonction.

<!-- 
    - utilisation de for .. in
    - différentes manière d'accéder à la propriétés
.. -->
- Ecrivez une fonction ``showStudent(student)`` qui permet d'afficher un objet ``student``

<!-- To make a “real copy” (a clone) we can use Object.assign for the so-called “shallow copy” (nested objects are copied by reference) or a “deep cloning” function structuredClone or use a custom cloning implementation, such as _.cloneDeep(obj).- -->

- Ecrivez une fonction  ``extractIdentityFromEmail(email)`` qui permet d'extraire le nom et le prénom à partir de l'adresse mail. La fonction renvoie un objet litéral avec les deux propriétés ``{firstName : xxx, lastName : xxx}``
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String

- Ecrivez la fonction ``checkEntry(email, age)`` qui : 
    - vérifie que l'adresse mail est bien formatée
    - vérifie que l'adresse mail est une adresse iut-tlse3.fr
    - vérifie que l'age est valide (nombre positif)
    
    la fonction renvoie ``null`` et affiche un message correspondant à l'erreur identifiée.

- Ecrivez une fonction ``generateMark(max)`` qui permet de générer aléatoirement une note de 0 à max

- Ecrivez un programme qui permet de saisir les informations de ``n`` étudiants (fonction [prompt](https://developer.mozilla.org/fr/docs/Web/API/Window/prompt)). Pour chaque entrée (i.e. chaque étudiant) 
    - Récupérez les informations du prompt
    - Vérifiez que ces informations sont valides. Si elles ne le sont pas, refaire une itération.
    - Créez un objet étudiant à partir de ces informations
        - Le nom et prénom seront extraits automatiquement de l'adresse mail
        - On générera aléatoirement trois notes
    - Ajoutez l'objet au tableau ``promotion`` qui contiendra tous les étudiants. 

- Ecrivez une fonction showStudents() qui affiche les détails de tous les étudiants
- Ecrivez une fonction qui renvoie la moyenne de la promotion
- Ecrivez une fonction qui renvoie le nom et prénom du major de la promotion
- Ecrivez une fonction qui classe et affiche l'ensemble des étudiants en fonction de leur moyenne.
