Accueil

Traduction

Tutoriel JavaScript & jQuery - sommaire

Sommaire partiellement masqué - faites défiler !

Tutoriel JavaScript & jQuery - recherche

L'auteur : Patrick Darcheville

Vous pouvez me contacter via Facebook pour questions & suggestions : Page Facebook relative à mon site

JavaScript : les objets natifs

JavaScript est un langage orienté objet c'est à dire que ce langage dispose d'objets.

Un objet est une entité qui possède des propriétés et peut être manipulée avec des méthodes.
Une méthode est une fonction spécifique à un objet.
JavaScript est riche en objets prédéfinis (ou natifs).

L'objet Date

Mais il ne propose pas de propriété ...

Récupérer et manipuler l'instant présent

Utilisons la console pour nous familiariser avec la syntaxe relative à cet objet.
Console JS utilisée le samedi 4 juin 2022.

On utilise le "constructeur" Date avec le mot réservé new pour créer une nouvelle "instance de la "classe Date". On peut dire plus simplement "créer un objet de type date" Ou encore "créer une date & heure".
N'oubliez pas le "D" majuscule à "Date" pour bien préciser qu'il s'agit d'un constructeur.

Ici on n'a pas passé d'argument au "constructeur" Date donc la variable cejour récupère par défaut l'instant présent (date et heure de l'appel sur le terminal de l'utilisateur).

Nous avons donc utilisé des méthodes "getter" c'est à dire des méthodes pour récupérer des infos sur une instance de l'objet Date.
Il existe aussi des méthodes "setter" ...

Notez quelques bizarreries ...
getMonth() retourne 5 pour le mois de juin (et 0 pour janvier).
getDay() retourne 6 pour un samedi (et 0 pour dimanche).

Calcul de l'âge d'un individu

Le script :

Le rendu dans un cadre :

Ce script retourne mon âge en millisecondes et en années entières !
Remarquez comment j'ai créé une instance de Date contenant ma date de naissance.
Faire la différence entre deux dates c'est faire la différence entre leur timestamp respectifs et donne donc le nombre de millisecondes écoulé entre ces deux dates.
Une année c'est : 365 * 24 * 60 * 60 * 1000 millisecondes. Donc pour obtenir mon âge en années il suffit de diviser cet âge en millisecondes par (365 * 24 * 60 * 60 * 1000).
Ici l'âge est ensuite arrondi à l'entier le plus proche via la fonction parseInt().

Script pour afficher l'instant présent de façon lisible pour un francophone

Le rendu dans un cadre :

Les méthodes "setter"

Dans l'exemple ci-dessous une nouvelle date en 2024 est produite à partir de l'instant présent.

Le rendu dans un cadre :

Grâce à la méthode setFullYear() on modifie le millésime dans la variable "datecourante".
Je modifie aussi le rang du mois et le rang du jour dans le mois via setMonth() & setDate()
Il existe d'autres méthodes "setter" : setDay(), setHours(), setMinutes(), setSeconds(), etc.

Les méthodes getYear() & setYear() sont désormais obsolètes : ne plus utiliser !

Les "strings" ou chaines

Création de chaines

Pour créer un objet String (une chaine) vous pouvez utiliser le constructeur String mais en général on préfère créer une variable de type string avec la syntaxe : let var ="suite de caractères alphanumériques"
Une chaine est délimitée obligatoirement par des guillemets simples ou doubles.

Exemples :
let voyelles ='aeiouy'
let consonnes = "bcdfghjklmnpqrstvwxz"
let surnom = "l'emmerdeur"
let pseudo = 'l\'emmerdeur'

Une chaine délimitée par des guillemets simples peut contenir l'apostrophe si ce caractère est échappé.
Maintenant c'est plus simple de délimiter alors par des guillemets doubles.

Méthodes et propriétés applicables

Pour vous familiariser avec les propriétés et méthodes applicable à une chaine de caractère utilisez la console !

La chaine contenue dans "chaine" a une longueur de 17 donc les caractères ont pour valeur d'indice de 0 à 16.
La chaine contenue dans "chaine_propre" a une longueur de 12 caractères donc les * finales ont pour position 10 et 11.

Notez que l'on peut chainer les méthodes : élément. méthode().méthode() ...
length n'est pas une méthode mais une propriété ; donc pas de parenthèses !

Programme pour vérifier la validité d'une adresse mail

Le code de la page (extraits) :

Testez ce formulaire :

Cette page montre qu'il est possible de contrôler la validité d'une adresse mail grâce à la méthode indexOf.
Une adresse mail valide comporte obligatoirement le caractère @ et un point après l'arobase.
La méthode indexOf() possède un deuxième argument (facultatif) qui précise à partir de quelle position doit commencer la recherche de la sous chaîne passée en premier argument.
Je vous rappelle que la méthode indexOf() retourne -1 si elle n'a pas trouvé la sous chaîne dans la chaîne.
Donc si la chaîne saisie comprend un arobase et un point après l'arobase alors les variables rang_arobase et rang_point contiennent un entier supérieur à -1 (supérieur ou égal à zéro).

D'autres outils pour manipuler une chaine

Le script

La variable "concat2" récupère une chaine produite avec la nouvelle technique de concaténation dite des "guillemets inversés".
Pour produire un guillemet inversé il faut appuyer sur les touches 7 et alt gr.
Pour convertir un nombre en chaine il faut utiliser la méthode toString()
On peut créer une chaine avec le constructeur String.
Pour extraire une sous-chaine d'une chaine il faut utiliser la méthode slice(indice début, indice fin). Cette méthode retourne les caractères compris entre indice début inclus et indice fin exclu.

Rendu du script :

Pour concaténer plusieurs chaines (littérales ou variables) vous pouvez aussi utiliser la méthode concat().
Pour extraire une sous-chaine il existe aussi les méthodes substr() & substring().
Mais attention ces trois méthodes ne sont pas complètement équivalentes quant au paramétrage et au résultat. La méthode substr() est dépréciée : ne devrait plus être utilisée.

L'objet Math

Les méthodes de l'objet Math (avec un M majuscule car c'est un constructeur) permettent d'effectuer des calculs.

Méthodes de l'objet Math

Commandes à saisir dans la console :

Il existe aussi des fonctions trigonométriques ...

Les constantes de Math

A saisir dans la console :

Surtout respectez la casse : PI en majuscule, E en majuscule !

Un programme qui simule le lancer d'un dé

Le script :

Le rendu du script :

Actualisez la page pour simuler un nouveau lancer.

Nous avons une boucle qui est exécutée 6 fois et génère 6 entiers compris entre 1 et 6
La méthode random() génère de façon aléatoire un réel compris entre 0 et 1 exclu (maximum : 0.9999....)
En multipliant par 6 ce réel on obtient donc un autre réel compris entre 0 et 6 exclu
En appliquant la méthode ceil() à ce réel on obtient un entier compris entre 1 et 6 et c'est bien ce que nous voulons.

Attention si on avait appliqué la méthode floor() on aurait obtenu un entier compris entre 0 et 5 ce qui ne correspond pas vraiment aux faces d'un dé ...

Les tableaux : objets array, map, set

"Array" veut dire tableau en anglais. J'ai déjà consacré tout un chapitre aux tableaux JS.
L'objet "Array" ne permet que de créer des tableaux indicés.
La nouvelle version de JavaScript propose l'objet "Map" pour créer et manipuler des tableaux associatifs (dictionnaires en Python) ainsi que l'objet "set" pour créer et manipuler des ensembles (listes sans doublons possibles).
Toute une page, dans ce présent tuto est consacrée aux différents types de tableaux : array, map & set. chapitre sur les tableaux

Objet Window

Window est l'objet JavaScript de plus haut niveau dans la hiérarchie des objets.
Il comporte un grand nombre de méthodes dont certaines que vous connaissez déjà : alert(), prompt(), confirm()
Il est le seul objet à autoriser une écriture simplifiée. En effet dans le cadre de la notation pointée il n'est pas obligatoire de préciser window. Ainsi au lieu d'écrire window.alert() on se contente d'écrire alert()

Le principal sous objet de l'objet window est l'objet document qui comprend à son tour des objets ...

Objet Document

L'objet document est à la base de l'interface DOM.

La méthode write de l'objet document

Grâce à cette méthode vous pouvez écrire dans la page web.

Attention l'exécution d'une première instruction basée sur document.write provoque l'effacement de la page déjà chargée.

Générer du HTML via document.write

Vous voulez qu'un script affiche la table de multiplication par n (n : entier saisi par l'utilisateur).
Il suffit d'utiliser comme instructions basées sur document.write avec en arguments des balises HTML.
Le script :

Le rendu de ce code dans un nouvel onglet

Cibler les éléments de la page

C'est grâce à des méthodes de l'objet document que l'on peut cibler dans un script des éléments de la page.

L'argument est toujours un sélecteur CSS !

Exemple de routine : pour affecter la couleur de fond vert à chaque balise H3 il suffira d'écrire :

L'objet images

Il s'agit d'un sous-objet de document qui cible toutes les images de la page.

Exemple : un clic sur un bouton de commande permet d'agrandir toutes les images de la page.

Le code de la page:

Vous manipulez la collection d'images tel un tableau avec la structure for ... in !

Le rendu dans un cadre :

L'objet screen

Il s'agit également d'un sous objet de l'objet window.
Il comprend neuf propriétés informant sur les dimensions de l'écran de l'internaute.

Exemple : connaitre toutes les propriétés et méthodes de l'objet screen.

Le script :

Le rendu dans un cadre :

Inutile d'écrire window.scren puisque window est implicite !

Testez cette page avec un ordinateur portable puis avec votre tablette.

Les.propriétés de l'objet screen sont très utilisées pour tester le type de terminal utilisé par le visiteur.
Si la largeur de l'écran est inférieure à 900 pixels il s'agit d'un mobile (tablette ou smartphone).

Objet navigator

L'objet navigator va donner des infos sur le navigateur utilisé.

Exemple 1

Dans l'exemple toutes les propriétés et méthodes de l'objet navigator sont affichées.

Le script : Testez ce script dans un nouvel onglet

La liste des propriétés est impressionnante.

Géolocalisation

L'objet navigateur contient un sous objet : geolocation.
Voir le tutoriel "HTML" qui traite entre autres de l'API geolocation : API implémentées par les navigateurs