Le langage JavaScript est interprété, ce qui veut dire que chaque instruction est exécutée au moment de l’exécution dans le navigateur.
Il peut manipuler des variables, des fonctions, le DOM, et plus encore.
Convention
Le JavaScript utilise le Camel Case pour nommer les variables et fonctions.
Par exemple, on écrira maVariable.
Les opérations comportent toujours un espace :
javascript
1
console.log(2+1);
Accolades
JS est sensible à la syntaxe mais utilise des accolades {} pour définir les blocs, contrairement à Python qui utilise l’indentation.
Toutes les conventions sont disponibles sur W3School.
letage=20;letnom="Jean";letetudiant=true;letanimaux=["chien","chat","poisson","chameau"];console.log(age);console.log(nom);console.log(animaux);console.log(`Le type de 'age' est ${typeofage}, celui de 'nom' est ${typeofnom} et le type de 'animaux' est ${typeofanimaux}`);
À savoir
Le type de la liste animaux est un object.
Le JavaScript est un langage dit “orienté objet”, ce qui signifie qu’il est possible d’encapsuler des concepts en objets.
javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
classVoiture{constructor(marque,nom){this.marque=marque;/*
le `this.marque` définit l'attribut de la classe, le `marque` est le paramètre de la fonction
,*/this.nom=nom;}donneInfo(){console.log(`La voiture ${this.nom} est de marque ${this.marque}`);}}// On instancie 2 voitures différentes
varvoiture1=newVoiture("Toyota","Corolla");varvoiture2=newVoiture("Renault","Espace");voiture1.donneInfo();voiture2.donneInfo();
Comme montré, le JavaScript n’a pas de types prédéfinis comme d’autres langages (Java, C++, C, …).
Les types sont définis par l’interpréteur.
Cela permet de redéfinir les types à la volée.
letage=20;console.log(typeofage==="string");console.log("Changement de la variable 'age' en string");age="tomate";console.log(age);console.log(typeofage==="string");
À savoir
Même si utiliser == semble fonctionner, il est recommandé de ne pas l’utiliser.
Privilégiez === pour la vérification stricte des types.
<!doctype html><htmllang="fr"><head><metacharset="UTF-8"/><linkhref="style.css"rel="stylesheet"/><title>Ex 1</title></head><body><h1>Ex 1</h1><pid="texte_a_changer"></p></body><script>lettexte=document.getElementById("texte_a_changer");texte.textContent="Hello World !";</script></html>
Décomposition
let texte : crée une variable texte
document.getElementById("texte_a_changer") : document désigne la page web ; getElementById sélectionne l’élément avec l’id texte_a_changer (ici un <p>)
texte.textContent : redéfinit le contenu de la variable (et donc le contenu HTML)
functionmaFonction(age){if(isNaN(age)){alert("Veuillez rentrer un nombre.");returnmaFonction(prompt("Quel est votre âge ?"));/*
Ici on return la même fonction si la condition `isNaN` (Is Not A Number -> 'N'est pas un nombre) est vrai, c'est la récursivité.
C'est utilisé pour ce genre de code demandant un input à l'utilisateur pour éviter les erreurs d'entrées.
C'est aussi utile pour les PGCD et autres formules mathématiques.
,*/}age=parseInt(age);age=age+1;console.log(`Vous avez ${age} ans`);}maFonction(prompt("Quel est votre âge ?"));
En JavaScript, le switch permet de comparer une expression à plusieurs valeurs possibles.
javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
lett=prompt("Saisir un caractère :");switch(t){case"a":case"e":case"i":case"o":case"u":case"y":alert("C'est une voyelle");break;default:alert("Pas une voyelle");break;}
Décomposition
switch(expression) évalue l’expression
Chaque case compare la valeur de l’expression
break empêche l’exécution des cases suivantes
default est exécuté si aucune valeur ne correspond