1 Une Introduction à JavaScript
1 Une Introduction à JavaScript
FR
20 octobre 2022
Les programmes dans ce langage sont appelés scripts. Ils peuvent être écrits directement dans une page HTML
et exécutés automatiquement au chargement des pages.
Les scripts sont fournis et exécutés en texte brut. Ils n’ont pas besoin d’une préparation spéciale ou d’une
compilation pour fonctionner.
De par cet aspect, JavaScript est très différent d’un autre langage appelé Java.
Mais au fur et à mesure de son évolution, JavaScript est devenu un langage totalement indépendant, avec
ses propres spécifications appelées ECMAScript, aujourd’hui il n’a aucun rapport avec Java.
Aujourd’hui, JavaScript peut s’exécuter non seulement dans le navigateur, mais également sur serveur, ou encore
sur n’importe quel appareil dans lequel existe un programme appelé le moteur JavaScript.
Le navigateur a un moteur intégré, parfois il peut être également appelé “la machine virtuelle JavaScript”.
Les termes ci-dessus sont bons à retenir, car ils sont utilisés dans les articles destinés aux développeurs sur
Internet. Nous les utiliserons aussi. Par exemple, si “une fonctionnalité X est prise en charge par V8”, cela
fonctionne probablement dans Chrome et Opera.
Le moteur applique des optimisations à chaque étape du processus. Il surveille même le script compilé en
cours d’exécution, analyse les données qui le traversent et applique des optimisations au code machine en
fonction de ces informations.
Les fonctionnalités dépendent grandement de l’environnement qui exécute JavaScript. Par exemple, Node.js
prend en charge les fonctions qui permettent à JavaScript de lire / écrire des fichiers arbitrairement, d’exécuter
des requêtes réseau, etc.
JavaScript intégré au navigateur peut faire tout ce qui concerne la manipulation des pages Web, l’interaction
avec l’utilisateur et le serveur Web.
● Ajouter un nouveau code HTML à la page, modifiez le contenu existant, modifiez les styles.
● Réagir aux actions de l’utilisateur, s’exécuter sur des clics de souris, des mouvements de pointeur, des appuis
sur des touches.
● Envoyer des requêtes sur le réseau à des serveurs distants, télécharger et envoyer des fichiers (technologies
AJAX et COMET).
● Obtenir et définir des cookies, poser des questions au visiteur, afficher des messages.
● Se souvenir des données du côté client (“stockage local”).
Qu’est-ce que JavaScript ne peut pas faire dans le navigateur
?
Les capacités de JavaScript dans le navigateur sont limitées pour la sécurité de l’utilisateur. L’objectif est
d’empêcher une page Web malveillante d’accéder à des informations privées ou de nuire aux données de
l’utilisateur.
● JavaScript sur une page Web ne peut pas lire/écrire des fichiers arbitrairement sur le disque dur, les copier ou
exécuter des programmes. Il n’a pas d’accès direct aux fonctions du système d’exploitation.
Les navigateurs modernes lui permettent de fonctionner avec des fichiers, mais l’accès est limité et n’est
fourni que si l’utilisateur effectue certaines actions, comme «déposer» un fichier dans une fenêtre de
navigateur ou le sélectionner via une balise <input> .
Il existe des moyens d’interagir avec une webcam/microphone et d’autres appareils, mais ils nécessitent une
autorisation explicite de l’utilisateur. Ainsi, une page compatible avec JavaScript ne permet pas d’activer une
caméra Web, d’observer l’environnement et d’envoyer les informations à la NSA.
● Différents onglets / fenêtres ne se connaissent généralement pas. Parfois, ils se croisent, par exemple
lorsqu’une fenêtre utilise JavaScript pour ouvrir l’autre. Mais même dans ce cas, le JavaScript d’une page ne
peut pas accéder à l’autre si elle provient de sites différents (provenant d’un autre domaine, protocole ou
port).
C’est ce qu’on appelle la “politique de même origine” (“Same Origin Policy”). Pour contourner cette sécurité,
les deux pages doivent se mettre d’accord et contenir un code JavaScript spécial qui gère l’échange de
données. Nous allons voir cela plus loin dans ce tutoriel.
Cette limitation concerne également la sécurité de l’utilisateur. Une page de http://autresite.com qu’un
utilisateur a ouverte ne doit pas pouvoir accéder à un autre onglet du navigateur avec l’URL
http://gmail.com et y voler des informations.
● JavaScript peut facilement communiquer sur le net avec le serveur d’où provient la page en cours. Mais sa
capacité à recevoir des données d’autres sites / domaines est paralysée. Bien que possible, il nécessite un
accord explicite (exprimé dans les en-têtes HTTP) du côté distant. Encore une fois, ce sont des limites de
sécurité.
https://javascript.info
https://javascript.info https://gmail.com
<script>
...
</script>
De telles limites n’existent pas si JavaScript est utilisé en dehors du navigateur, par exemple sur un serveur. Les
navigateurs modernes permettent également l’installation de plug-ins / extensions susceptibles d’obtenir des
autorisations étendues.
JavaScript est la seule technologie de navigateur qui combine ces trois éléments.
C’est ce qui rend JavaScript unique. C’est pourquoi c’est l’outil le plus répandu pour créer des interfaces de
navigateur.
Cela dit, JavaScript permet également de créer des serveurs, des applications mobiles, etc.
Il faut s’y attendre, parce que les projets et les exigences sont différents pour tous.
Donc, récemment, une pléthore de nouveaux langages sont apparus, qui sont transpilés (convertis) en JavaScript
avant leur exécution dans le navigateur.
Les outils modernes rendent la transpilation très rapide et transparente, permettant aux développeurs de coder
dans une autre langue et de la convertir automatiquement “sous le capot”.
● CoffeeScript est un “sucre syntaxique” pour JavaScript, il introduit une syntaxe plus courte, permettant
d’écrire du code plus précis et plus clair. Habituellement, les développeurs Ruby l’aiment bien.
● TypeScript se concentre sur l’ajout de “typage strict des données” pour simplifier le développement et la prise
en charge de systèmes complexes. Il est développé par Microsoft.
● Flow ajoute également la saisie de données, mais de manière différente. Développé par Facebook.
● Dart est un langage autonome doté de son propre moteur qui s’exécute dans des environnements autres que
les navigateurs (comme les applications mobiles), mais peut aussi être transpilé en JavaScript. Développé par
Google.
● Brython est un transpilateur Python vers JavaScript qui permet d’écrire des applications en Python pur sans
JavaScript.
● Kotlin est un langage de programmation moderne, concis et sûr qui peut cibler le navigateur ou Node.
Il en existe évidemment bien plus, cela dit, même si nous utilisons un de ces langages transpilés, nous devrions
également connaître le langage JavaScript, pour bien comprendre ce que nous faisons.
Résumé
● JavaScript a été initialement créé en tant que langage de navigateur uniquement, mais il est désormais
également utilisé dans de nombreux autres environnements.
● En ce moment, JavaScript occupe une position unique en tant que langage de navigateur le plus largement
adopté avec une intégration complète avec HTML/CSS.
● De nombreux langages sont “transpilés” en JavaScript et fournissent certaines fonctionnalités. Il est
recommandé d’y jeter un coup d’œil, au moins brièvement, après avoir maîtrisé JavaScript.
Commentaires
● Si vous avez des améliorations à suggérer, merci de soumettre une issue GitHub ou une pull request
au lieu de commenter.
● Si vous ne comprenez pas quelque chose dans l'article, merci de préciser.
● Pour insérer quelques bouts de code, utilisez la balise <code> , pour plusieurs lignes – enveloppez-les
avec la balise <pre> , pour plus de 10 lignes - utilisez une sandbox (plnkr, jsbin, codepen…)
© 2007—2023 Ilya Kantorà propos du projet
nous contacter