Apprendre JavaScript pour Angular : Concepts Essentiels
1. Fondamentaux de JavaScript
Variables et Types de Données
• Utiliser let et const pour déclarer des variables (évitez var).
• Types de données :
o Chaînes de caractères : let nom = 'Jean';
o Nombres : let age = 25;
o Booléens : let estVrai = true;
o Objets : let personne = { nom: 'Ali', age: 30 };
o Tableaux : let fruits = ['pomme', 'banane', 'orange'];
Structures de Contrôle
• Conditionnelles :
• if (age > 18) {
• console.log('Adulte');
• } else {
• console.log('Mineur');
• }
• Boucles :
• for (let i = 0; i < 5; i++) {
• console.log(i);
• }
Fonctions
• Déclaration classique :
• function saluer(nom) {
• return `Bonjour, ${nom}`;
• }
• Fonction fléchée :
• const saluer = (nom) => `Bonjour, ${nom}`;
2. Concepts Essentiels pour Angular
Manipulation des Objets et Tableaux
• Utiliser des méthodes modernes pour travailler avec les tableaux :
• const nombres = [1, 2, 3, 4, 5];
• const doubles = nombres.map(num => num * 2);
• console.log(doubles); // [2, 4, 6, 8, 10]
• Filtrage des données :
• const pairs = nombres.filter(num => num % 2 === 0);
• console.log(pairs); // [2, 4]
• Réduction des valeurs :
• const somme = nombres.reduce((acc, num) => acc + num, 0);
• console.log(somme); // 15
Fonctions Asynchrones
• Promises : Utilisées pour gérer des opérations asynchrones.
• fetch('https://api.example.com/data')
• .then(response => response.json())
• .then(data => console.log(data))
• .catch(error => console.error('Erreur :', error));
• async/await : Une syntaxe plus simple pour écrire du code asynchrone.
• async function getData() {
• try {
• const response = await fetch('https://api.example.com/data');
• const data = await response.json();
• console.log(data);
• } catch (error) {
• console.error('Erreur :', error);
• }
• }
• getData();
Modules
• Importation et Exportation pour organiser le code en plusieurs fichiers.
o Fichier util.js :
o export const multiplier = (a, b) => a * b;
o export const additionner = (a, b) => a + b;
o Fichier principal :
o import { multiplier, additionner } from './util.js';
o console.log(multiplier(2, 3)); // 6
o console.log(additionner(2, 3)); // 5
3. Programmation Orientée Objet (POO)
Classes et Objets
• Déclaration d’une classe :
• class Personne {
• constructor(nom, age) {
• this.nom = nom;
• this.age = age;
• }
• saluer() {
• console.log(`Bonjour, je m'appelle ${this.nom}`);
• }
• }
• const ali = new Personne('Ali', 25);
• ali.saluer();
Héritage
• Créer une sous-classe avec extends.
• class Employe extends Personne {
• constructor(nom, age, poste) {
• super(nom, age);
• this.poste = poste;
• }
• afficherPoste() {
• console.log(`Je suis un ${this.poste}`);
• }
• }
• const employe = new Employe('Divine', 28, 'Développeur');
• employe.saluer();
• employe.afficherPoste();
Contexte de this
• Le comportement de this change selon le contexte.
• const objet = {
• nom: 'Objet',
• afficherNom: function() {
• console.log(this.nom);
• }
• };
• objet.afficherNom(); // "Objet"
4. Programmation Fonctionnelle
Closures
• Une fonction interne qui accède aux variables de son parent.
• function createCounter() {
• let count = 0;
• return function() {
• count++;
• return count;
• };
• }
• const counter = createCounter();
• console.log(counter()); // 1
• console.log(counter()); // 2
Fonctions de Rappel (Callbacks)
• Passer une fonction comme argument.
• function traitement(callback) {
• const result = 5 + 3;
• callback(result);
• }
• traitement(result => console.log(`Résultat : ${result}`));
5. Gestion des Erreurs
try...catch
• Pour capturer et gérer des erreurs.
• try {
• let result = 10 / 0;
• if (!isFinite(result)) {
• throw new Error('Division par zéro');
• }
• } catch (error) {
• console.error('Erreur :', error.message);
• }
finally
• Code exécuté après try ou catch.
• try {
• console.log('Essai');
• } finally {
• console.log('Toujours exécuté');
• }
6. Manipulation du DOM (Document Object Model)
Sélection d’Éléments
const bouton = document.querySelector('button');
bouton.addEventListener('click', () => {
alert('Bouton cliqué !');
});
Modification du DOM
const div = document.createElement('div');
div.textContent = 'Nouveau contenu';
document.body.appendChild(div);
Bonnes Pratiques et Outils
• Utiliser des linters comme ESLint.
• Utiliser des outils de formatage comme Prettier.
• Déboguer avec les outils de développement du navigateur.
• Familiarisez-vous avec npm et package.json pour gérer les dépendances dans Angular.
Ressources Recommandées
• MDN Web Docs : https://developer.mozilla.org/fr/docs/Web/JavaScript
• JavaScript.info : https://javascript.info/