Sommaire partiellement masqué - faites défiler !
Vous pouvez me contacter via Facebook pour questions & suggestions :
Page Facebook relative à mon site
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).
Mais il ne propose pas de propriété ...
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).
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().
Le rendu dans un cadre :
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 !
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.
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 !
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).
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.
Les méthodes de l'objet Math (avec un M majuscule car c'est un constructeur) permettent d'effectuer des calculs.
Commandes à saisir dans la console :
Il existe aussi des fonctions trigonométriques ...
A saisir dans la console :
Surtout respectez la casse : PI en majuscule, E en majuscule !
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é ...
"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
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 ...
L'objet document est à la base de l'interface DOM.
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.
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
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 :
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: