Introduction au JavaScript Moderne
32 Questions
0 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

Quel est l'avantage principal d'utiliser un éditeur de code comme VS Code par rapport à un éditeur de texte simple (Bloc-notes, TextEdit) pour le développement JavaScript ?

  • VS Code compresse automatiquement les fichiers JavaScript pour optimiser les performances du site web.
  • VS Code offre des fonctionnalités d'auto-complétion, de coloration syntaxique et de débogage, améliorant l'efficacité du développement. (correct)
  • VS Code est le seul éditeur capable d'ouvrir les fichiers `.js`.
  • Les éditeurs de texte simples sont payants, contrairement à VS Code qui est gratuit.

Pourquoi est-il important de configurer TextEdit en mode 'plain text' sur Mac OS lors de la création d'un premier script JavaScript ?

  • Pour éviter que TextEdit n'ajoute un formatage enrichi au code, ce qui pourrait empêcher le navigateur d'interpréter correctement le script. (correct)
  • Pour empêcher TextEdit d'ajouter automatiquement des liens hypertextes dans le code.
  • Pour éviter que TextEdit n'enregistre le fichier avec une extension incorrecte.
  • Pour que TextEdit puisse comprendre et exécuter le code JavaScript directement.

Quelle est la fonction principale de la balise <script> dans un document HTML ?

  • Elle définit la structure de la page HTML.
  • Elle crée un lien vers un fichier JavaScript externe.
  • Elle définit le style CSS de la page web.
  • Elle permet d'intégrer et d'exécuter du code JavaScript dans la page HTML. (correct)

Comment vérifier que Node.js est correctement installé après le téléchargement ?

<p>En exécutant la commande <code>node -v</code> dans le terminal et en vérifiant que le numéro de version s'affiche. (C)</p> Signup and view all the answers

Quel est le rôle de l'extension Prettier dans VS Code ?

<p>Formater automatiquement le code pour assurer une présentation uniforme et lisible. (D)</p> Signup and view all the answers

Pourquoi est-il utile d'installer l'extension ESLint dans VS Code ?

<p>Pour détecter les erreurs potentielles et les problèmes de style dans le code JavaScript. (D)</p> Signup and view all the answers

Comment exécuter un fichier JavaScript avec Node.js à partir du terminal VS Code ?

<p>En utilisant la commande <code>node script.js</code> après avoir navgué vers le dossier du projet dans le terminal. (B)</p> Signup and view all the answers

Quel est le but de l'extension Quokka.js pour VS Code ?

<p>Offre la possibilité d'exécuter le code directement dans l'éditeur à des fins pédagogiques. (D)</p> Signup and view all the answers

Quelle caractéristique distingue principalement une fonction fléchée (arrow function) d'une fonction traditionnelle en JavaScript?

<p>Les fonctions fléchées héritent du <code>this</code> du contexte englobant. (C)</p> Signup and view all the answers

Comment accède-t-on à la valeur associée à la clé nom dans l'objet suivant : const personne = { nom: 'Alice', age: 30 };?

<p><code>personne.nom</code> (A)</p> Signup and view all the answers

Si monTableau est défini comme const monTableau = [10, 20, 30, 40];, quelle instruction modifiera la valeur 20 en 25?

<p><code>monTableau[1] = 25;</code> (D)</p> Signup and view all the answers

Quelle est la principale différence entre un type de référence et un type de valeur en JavaScript lors de la copie d'une variable?

<p>La copie d'un type de référence pointe vers la même adresse mémoire, tandis que la copie d'un type de valeur crée une nouvelle copie en mémoire. (C)</p> Signup and view all the answers

Si tableau1 = [1, 2, 3] et tableau2 = tableau1, que se passe-t-il si on effectue tableau2.push(4)?

<p>Les deux, <code>tableau1</code> et <code>tableau2</code>, deviennent <code>[1, 2, 3, 4]</code>. (D)</p> Signup and view all the answers

Quelle méthode de tableau est appropriée pour créer un nouveau tableau contenant uniquement les nombres pairs d'un tableau de nombres?

<p><code>.filter()</code> (A)</p> Signup and view all the answers

Quelle méthode de tableau est la plus appropriée pour ajouter un nouvel élément au début d'un tableau?

<p><code>.unshift()</code> (D)</p> Signup and view all the answers

Quelle est la fonction de la méthode .splice()?

<p>Modifier le contenu d'un tableau en supprimant, remplaçant ou ajoutant des éléments. (A)</p> Signup and view all the answers

Quelle est la principale différence entre déclarer une variable avec let et const en JavaScript ?

<p><code>const</code> crée une variable dont la valeur ne peut pas être modifiée après l'initialisation, tandis que <code>let</code> permet la réassignation. (C)</p> Signup and view all the answers

Quel type de données JavaScript est le mieux adapté pour stocker des nombres entiers qui dépassent la limite maximale du type Number?

<p><code>BigInt</code> (D)</p> Signup and view all the answers

Quelle est la différence fondamentale entre null et undefined en JavaScript?

<p><code>undefined</code> signifie que la variable a été déclarée mais n'a pas de valeur assignée, tandis que <code>null</code> représente une absence intentionnelle de valeur. (D)</p> Signup and view all the answers

Comment peut-on insérer la valeur d'une variable dans une chaîne de caractères en utilisant les template literals en JavaScript?

<p>En utilisant la syntaxe <code>${nomVariable}</code> à l'intérieur d'une chaîne délimitée par des <em>backticks</em>. (B)</p> Signup and view all the answers

Quelle est la différence entre l'égalité stricte (===) et l'égalité non stricte (==) en JavaScript?

<p><code>==</code> compare uniquement les valeurs, tandis que <code>===</code> compare les valeurs et les types. (B)</p> Signup and view all the answers

Quelle est la fonction de l'instruction return dans une fonction JavaScript?

<p>Elle permet de renvoyer une valeur depuis la fonction et termine son exécution. (D)</p> Signup and view all the answers

Comment peut-on vérifier si une variable contient la valeur NaN (Not a Number) en JavaScript?

<p>En utilisant la fonction <code>Number.isNaN(variable)</code>. (A)</p> Signup and view all the answers

Quel est le résultat de l'expression suivante en JavaScript : '5' + 3?

<p>53 (D)</p> Signup and view all the answers

Comment accéder au premier caractère d'une chaîne de caractères en JavaScript?

<p>En utilisant la méthode <code>.charAt(0)</code> comme ceci : <code>maChaine.charAt(0)</code> (A)</p> Signup and view all the answers

Quel est le scope d'une variable déclarée avec let à l'intérieur d'un bloc ({}) en JavaScript?

<p>De bloc (B)</p> Signup and view all the answers

Quelle est la syntaxe correcte pour écrire un commentaire multiligne en JavaScript?

<p><code>/* Ceci est un commentaire multiligne */</code> (D)</p> Signup and view all the answers

Quelle est la principale utilité de Quokka.js dans VS Code?

<p>Exécuter le code JavaScript en temps réel directement dans l'éditeur. (B)</p> Signup and view all the answers

Que se passe-t-il si vous essayez de réassigner une valeur à une variable déclarée avec const en JavaScript?

<p>Une erreur de type <code>TypeError</code> est levée. (A)</p> Signup and view all the answers

Comment convertir une chaîne de caractères en nombre en JavaScript?

<p>En utilisant la fonction <code>Number()</code> comme ceci : <code>Number(maChaine)</code> (B)</p> Signup and view all the answers

Quel est le résultat de l'exécution du code suivant en JavaScript ?

let age = 25;
age += 5;
age -= 2;
console.log(age);

<p>28 (C)</p> Signup and view all the answers

<h1>=</h1> <h1>=</h1> Signup and view all the answers

Flashcards

JavaScript Moderne

Le JavaScript moderne est essentiel pour le développement web et est l'objectif principal de ce cours.

Balise ``

La balise HTML `` permet d'intégrer directement du code JavaScript dans un fichier HTML.

Fonction alert()

Une fonction JavaScript qui affiche une boîte de dialogue avec un message à l'utilisateur.

Visual Studio Code (VS Code)

Un éditeur de code fortement recommandé pour un environnement de développement JavaScript amélioré.

Signup and view all the flashcards

Node.js

Permet d'exécuter du code JavaScript en dehors d'un navigateur web. Utile pour le développement côté serveur.

Signup and view all the flashcards

Material Icon Theme

Une extension VS Code qui améliore l'apparence des icônes, rendant l'identification des fichiers plus facile.

Signup and view all the flashcards

Prettier

Une extension VS Code qui formate automatiquement le code pour maintenir un style cohérent.

Signup and view all the flashcards

Commande node -v

Une commande dans le terminal qui affiche la version de Node.js installée.

Signup and view all the flashcards

Fonction fléchée simple

Une fonction fléchée avec une seule expression peut omettre les accolades et return.

Signup and view all the flashcards

this dans fonction fléchée

Les fonctions fléchées héritent du this du contexte environnant.

Signup and view all the flashcards

Objet (JavaScript)

Collection non ordonnée de paires clé-valeur. Les clés sont des chaînes (ou symboles).

Signup and view all the flashcards

Tableau (JavaScript)

Liste ordonnée de valeurs, accessibles par un indice numérique (à partir de 0).

Signup and view all the flashcards

Type de référence

Type de données où la variable contient une référence à l'emplacement mémoire de la valeur, pas la valeur elle-même.

Signup and view all the flashcards

.push()

Ajoute un élément à la fin d'un tableau.

Signup and view all the flashcards

.pop()

Supprime le dernier élément d'un tableau et le retourne.

Signup and view all the flashcards

.map(callback)

Crée un nouveau tableau avec les résultats de l'appel d'une fonction fournie sur chaque élément du tableau appelant.

Signup and view all the flashcards

Qu'est-ce que Quokka.js?

Exécute le code JavaScript en temps réel dans VS Code, affichant les résultats directement dans l'éditeur.

Signup and view all the flashcards

Qu'est-ce que let?

Variable modifiable. Ne peut pas être redéclarée avec let.

Signup and view all the flashcards

Qu'est-ce que const?

Une variable non modifiable après son initialisation.

Signup and view all the flashcards

Qu'est-ce qu'un String?

Chaîne de caractères, délimitée par des guillemets doubles, simples ou backticks.

Signup and view all the flashcards

Qu'est-ce qu'un Boolean?

Valeur logique qui peut être true ou false.

Signup and view all the flashcards

Qu'est-ce que null?

Représente une absence intentionnelle de valeur.

Signup and view all the flashcards

Qu'est-ce que undefined?

Représente une variable qui n'a pas été initialisée.

Signup and view all the flashcards

Opérateur + (strings)

Concatène des chaînes de caractères.

Signup and view all the flashcards

.length (string)

Retourne le nombre de caractères dans une chaîne.

Signup and view all the flashcards

Différence: null vs undefined

null est une absence intentionnelle de valeur, undefined signifie qu'une variable n'a pas été initialisée.

Signup and view all the flashcards

Fonction Number()

Convertit une chaîne en nombre.

Signup and view all the flashcards

Opérateurs ++ et --

Incrémente ou décrémente la valeur d'une variable de 1.

Signup and view all the flashcards

Instruction if

Exécute du code si une condition est vraie.

Signup and view all the flashcards

Qu'est-ce que le scope?

Définit où une variable est accessible dans le code.

Signup and view all the flashcards

Fonction anonyme

Fonction sans nom assignée à une variable.

Signup and view all the flashcards

Study Notes

  • Voici une mise à jour des notes d'étude structurées et détaillées sur les concepts JavaScript abordés.

Introduction au JavaScript Moderne

  • L'objectif est d'apprendre le JavaScript moderne, essentiel pour le développement web.
  • Le cours est conçu pour les débutants, sans prérequis nécessaires en HTML ou CSS.
  • Il est recommandé de suivre le tutoriel en pratiquant chaque étape en temps réel.

Création d'un Premier Script JavaScript

  • Utiliser un éditeur de texte (TextEdit sur Mac OS, Bloc-notes sur Windows).
  • Sur Mac OS, configurer TextEdit en mode "plain text" pour éviter le formatage enrichi.
  • Écrire un script HTML basique incluant une balise <script>.
  • La balise <script> permet d'intégrer du code JavaScript directement dans un fichier HTML.
  • La fonction alert() affiche une boîte de dialogue avec un message (ex: "Hello world").
  • Sauvegarder le fichier avec l'extension .html (utiliser l'option "use HTML" sur Mac OS).
  • Ouvrir le fichier HTML dans un navigateur pour exécuter le script JavaScript.

Installation de Visual Studio Code (VS Code)

  • VS Code est un éditeur de code recommandé pour un environnement de développement plus agréable.
  • Télécharger VS Code depuis le site officiel en choisissant la version adaptée à votre système d'exploitation.

Installation de Node.js

  • Node.js permet d'exécuter du JavaScript en dehors d'un navigateur.
  • Télécharger Node.js depuis le site officiel (la version peut varier).

Configuration de VS Code

  • Installer des extensions utiles :
    • Material Icon Theme : pour améliorer l'apparence des icônes.
    • Prettier : pour formater automatiquement le code.
    • ESLint : pour détecter les erreurs et les problèmes de style dans le code.
    • Quokka.js : pour exécuter du JavaScript directement dans l'éditeur (usage pédagogique).
  • Configurer Prettier comme formateur par défaut dans les paramètres de VS Code (fichier settings.json).
  • Activer l'option "Format on Save" pour que Prettier formate le code à chaque sauvegarde.

Vérification de l'Installation de Node.js

  • Ouvrir un terminal dans VS Code (Terminal > New Terminal).
  • Taper la commande node -v pour vérifier la version de Node.js installée.

Création d'un Projet JavaScript dans VS Code

  • Créer un nouveau dossier pour le projet (File > Open Folder > New Folder).
  • Créer un nouveau fichier JavaScript dans le dossier (ex: script.js).
  • L'extension .js indique que le fichier contient du code JavaScript.

Exécution de JavaScript avec Node.js

  • Dans le terminal de VS Code, naviguer jusqu'au dossier du projet.
  • Taper la commande node script.js pour exécuter le fichier JavaScript.

Utilisation de Quokka.js pour l'Exécution en Temps Réel

  • Utiliser la commande "Start on Current File" dans Quokka.js pour exécuter le code en temps réel dans VS Code.
  • Quokka.js affiche les résultats du code directement dans l'éditeur.

Commentaires en JavaScript

  • Commentaires sur une seule ligne : // Ceci est un commentaire.
  • Commentaires multilignes : /* Ceci est un commentaire sur plusieurs lignes */.

Variables en JavaScript

  • Déclaration de variables modifiables avec le mot-clé let.
    • Exemple: let name = "Melvin";
  • Les variables sont comme des boîtes étiquetées stockant des données.
  • Assignation d'une valeur à une variable avec l'opérateur =.
    • Exemple: name = "Didier";
  • Il est impossible de redéclarer une variable avec le mot-clé let.

Constantes en JavaScript

  • Déclaration de constantes (variables non modifiables) avec le mot-clé const.
    • Exemple: const origin = "Suisse";
  • Les constantes doivent être initialisées lors de leur déclaration.
  • Il est impossible de modifier la valeur d'une constante après son initialisation.

Types de Données en JavaScript

  • String (chaînes de caractères) :
    • Déclaration avec des guillemets doubles ("..."), simples ('...'), ou backticks (`...`).
    • Les backticks permettent l'interpolation de variables dans les chaînes (template literals).
    • Exemple: const myString = "Bonjour";
  • Boolean (booléens) :
    • Valeurs true (vrai) ou false (faux).
    • Utilisés pour représenter des états logiques.
    • Exemple: const isAdult = true;
  • Number (nombres) :
    • Représentent des valeurs numériques (entiers ou flottants).
    • Exemple: const age = 42;
  • BigInt :
    • Pour les nombres entiers plus grands que la limite de Number.
    • Exemple: const bigNumber = 123456789012345678901234567890n;
  • Symbol :
    • Valeurs uniques et immuables.
    • Généralement utilisées comme clés d'objet.
    • Exemple: const mySymbol = Symbol("description");
  • Null :
    • Représente l'absence intentionnelle de valeur.
    • Exemple: let user = null;
  • Undefined :
    • Représente une variable qui n'a pas été initialisée.
    • Exemple: let city; (city est undefined)

Manipulation des Strings

  • Concaténation de strings avec l'opérateur + ou avec les template literals.
    • Exemple: const greetingTemplate = Bonjour, ${name}!;
  • Accéder à un caractère spécifique d'une string avec son index (commence à 0).
    • Exemple: const firstChar = myString[0];
  • Obtenir la longueur d'une string avec la propriété .length.
    • Exemple: const stringLength = myString.length;
  • Méthodes de string :
    • .toUpperCase() : Convertit en majuscules.
    • .toLowerCase() : Convertit en minuscules.
    • .charAt(index) : Retourne le caractère à l'index spécifié.
    • .includes(substring) : Vérifie si la chaîne contient la sous-chaîne.

Différence entre null et undefined

  • null : Absence intentionnelle de valeur. Variable volontairement vide.
  • undefined : Variable non initialisée. Indique souvent une erreur ou un oubli.
  • Une variable non définie est considérée comme undefined.
  • Il est préférable d'utiliser null pour indiquer explicitement qu'une variable est vide.

Manipulation des Numbers

  • Opérations arithmétiques de base : +, -, *, /.
  • Transformation de string en number avec Number().
    • Exemple: const stringNumber = "42"; const numberValue = Number(stringNumber);
  • La fonction Number()retourne NaN (Not a Number) si elle ne parvient pas à convertir la chaîne en nombre.
  • Transformation de number en string avec String().
    • Exemple: const numberToString = String(age);
  • Vérifier si une valeur est NaN avec Number.isNaN().

Opérateurs d'Affectation

  • Affectation simple : = (ex: age = 25;).
  • Addition et affectation : += (ex: age += 5; équivaut à age = age + 5;).
  • Soustraction et affectation : -= (ex: age -= 2; équivaut à age = age - 2;).
  • Multiplication et affectation : *=.
  • Division et affectation : /=.
  • Incrément et décrément : ++, -- (ex: age++; incrémente age de 1).

Conditions (if, else if, else)

  • Exécution de code conditionnelle basée sur des booléens (truthy ou falsy).
  • if (condition) { /* code à exécuter si la condition est vraie */ }
  • else { /* code à exécuter si la condition est fausse */ }
  • else if (condition) { /* code à exécuter si une autre condition est vraie */ }
  • Les accolades {} délimitent les blocs de code dans les instructions if, else if, et else.
  • Si le bloc ne contient qu'une seule instruction, les accolades peuvent être omises (mais c'est déconseillé pour la lisibilité).
  • Comparaison :
    • Egalité stricte : (===) vérifie la valeur et le type.
    • Egalité non stricte : (==) vérifie la valeur après conversion de type.
    • Inégalité stricte : (!==).
    • Inégalité non stricte : (!=).
    • Supérieur à : >.
    • Inférieur à : <.
    • Supérieur ou égal à : >=.
    • Inférieur ou égal à : <=.
  • Négation : ! (inverse la valeur d'un booléen).

Opérateurs Logiques

  • ET logique : && (les deux conditions doivent être vraies).
  • OU logique : || (au moins une des conditions doit être vraie).

Opérateur Ternaire

  • Syntaxe : condition ? valeur_si_vraie : valeur_si_fausse;
  • Une manière concise d'écrire une instruction if...else simple.
  • Exemple: const message = age >= 18 ? "Adulte" : "Mineur";

Fonctions en JavaScript

  • Déclaration d'une fonction avec le mot-clé function.
  • Syntaxe : function nomDeLaFonction(paramètre1, paramètre2) { /* code de la fonction */; return resultat; }
  • Appel d'une fonction en utilisant son nom suivi de parenthèses : nomDeLaFonction(argument1, argument2);
  • Les paramètres sont des variables locales à la fonction.
  • L'instruction return permet de renvoyer une valeur depuis la fonction (et termine l'exécution de la fonction).
  • Si aucun return n'est spécifié, la fonction renvoie implicitement undefined.

Scope des Variables

  • Le scope (portée) définit où une variable peut être accessible dans le code.
  • Scope global : Les variables déclarées en dehors de toute fonction ou bloc sont accessibles partout.
  • Scope de fonction : Les variables déclarées à l'intérieur d'une fonction sont accessibles uniquement à l'intérieur de cette fonction.
  • Scope de bloc : Les variables déclarées avec let ou const à l'intérieur d'un bloc ({}) sont accessibles uniquement à l'intérieur de ce bloc.

Syntaxes Alternatives pour les Fonctions

  • Fonctions anonymes :
    • const maFonctionAnonyme = function(paramètres) { /* code */ };
  • Arrow functions :
    • Syntaxe plus concise pour les fonctions anonymes.
    • const maFonctionArrow = (paramètres) => { /* code */ };
    • Si la fonction ne contient qu'une seule expression, les accolades et le return peuvent être omis:
    • const maFonctionArrowSimple = (paramètres) => expression;
  • Arrow functions n'ont pas leur propre this (elles héritent du this du contexte englobant).

Objets et Tableaux en JavaScript

  • Objets
    • Collection de paires clé-valeur.
    • Clés : strings (ou Symbols).
    • Valeurs : n'importe quel type de données.
    • Création : const monObjet = { clé1: valeur1, clé2: valeur2 };
    • Accès aux propriétés :
    • Notation par point : monObjet.clé1.
    • Notation par crochets : monObjet["clé1"].
    • Modification des propriétés : monObjet.clé1 = nouvelleValeur;.
  • Tableaux
    • Liste ordonnée de valeurs.
    • Indices : nombres entiers (commencent à 0).
    • Création : const monTableau = [valeur1, valeur2, valeur3];
    • Accès aux éléments : monTableau[indice].
    • Modification des éléments : monTableau[indice] = nouvelleValeur;.
    • Propriété length pour obtenir la taille du tableau.

Type de Référence

  • Les objets et les tableaux sont des types de référence.
  • Lorsqu'une variable de type référence est copiée (ex: const autreVariable = monObjet;), elle ne crée pas une nouvelle copie en mémoire. À la place, l'autre variable pointe vers la même adresse mémoire. Modifier l'objet d'une variable affectera donc aussi les valeurs qui sont utilisés dans une autre variable.
  • Les types primitifs (string, number, boolean etc) sont des types de valeur. Quand on copie ces types, la valeur est vraiment copiée en mémoire.
  • Si on fait un nouvel objet (ex: {}) ou un nouveau tableau (ex: []), alors la valeur est copiée. Pensez à cela pour les tableaux/objets stockés dans des variables en const - vous ne pouvez plus modifier à une nouvelle adresse, mais vous pouvez changer les clés/valeurs.
  • Pour copier un objet ou un tableau sans partager la même référence en mémoire, il faut utiliser une méthode de copie profonde (deep copy).

Méthodes Utiles pour les Tableaux

  • .push(element) : Ajoute un élément à la fin du tableau.
  • .pop() : Supprime le dernier élément du tableau et le renvoie.
  • .shift() : Supprime le premier élément du tableau et le renvoie.
  • .unshift(element) : Ajoute un élément au début du tableau.
  • .splice(start, deleteCount, element1, element2, ...) : Modifie le contenu du tableau en supprimant ou en remplaçant des éléments.
  • .map(callback) : Crée un nouveau tableau en appliquant une fonction callback à chaque élément du tableau d'origine.
  • .filter(callback) : Crée un nouveau tableau contenant uniquement les éléments qui passent un test spécifié par la fonction callback.

Opérateurs d'Affectation

  • Affectation simple : = (ex: age = 25;).
  • Addition et affectation : += (ex: age += 5; équivaut à age = age + 5;).
  • Soustraction et affectation : -= (ex: age -= 2; équivaut à age = age - 2;).
  • Multiplication et affectation : *=.
  • Division et affectation : /=.
  • Incrément et décrément : ++, -- (ex: age++; incrémente age de 1).

Ces notes fournissent un aperçu structuré et détaillé des concepts Javascript abordés. Elles peuvent servir de base pour un approfondissement personnel.

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Description

Ce cours initie au JavaScript moderne, crucial pour le développement web. Conçu pour les débutants, il explique comment créer un premier script en intégrant du code JavaScript dans un fichier HTML et comment utiliser VS Code.

More Like This

JavaScript Basics for Web Development
5 questions
JavaScript in Web Development
12 questions
Use Quizgecko on...
Browser
Browser