Outils pour utilisateurs

Outils du site


nsi:premiere:javascript_1

Javascript, première partie

Nous allons travailler un peu sur un autre langage que Python, ce qui nous sera utile dans le cadre de pages web car Python n'est pas compris par les navigateurs internet.

Présentation

On abrège en JS.

Créé en 1995 par Brendan Eich. Standardisé en 1997 sous le nom d' ECMAScript.

Comprenez que JS devenant très utilisé, on a décidé de convenir de normes – de règles – afin d'éviter le langage varie trop d'une machine à une autre.

C'est un langage de programmation de scripts.

Par scripts, comprendre des programme interprétés généralement assez court et faits pour une tâche très spécifique. JS n'est a priori pas fait pour programmer une application comme un logiciel de traitement d'image, un traitement de texte… Cependant, JS en est tout à fait capable et avec le développement des applications en ligne, on en est arrivé à programmer des applications entières en JS.

Bien que JS soit un langage a part entière que l'on pourrait exécuter exactement comme Python, c'est à dire avec l'interpréteur adapté, en général JS est utilisé dans les pages web. JS est le langage qui rend ces pages dynamiques : faire apparaître des éléments, changer la couleur d'un élément que l'on survole avec la souris… JS dispose donc de toutes les fonctions nécessaires pour manipuler le contenu des pages web.

Guido Von Rossum, inventeur de Python, a déclaré lui-même que Python est trop lourd pour qu'on puisse espérer voir Python exécuté dans une page web de la même façon que JS. C'est pourquoi tous les navigateurs incluent un interpréteur JS, mais pas d'interpréteur Python.

Les navigateurs n'ont pas toujours des interpréteurs équivalents. C'est pourquoi sur un site de référence comme MDN Web Docs, sur la notice d'une fonction JS comme celle ci, vous trouvez en bas un tableau indiquant quels navigateurs comprennent ou non cette fonction. Il peut arriver que des fonctions nouvelles en JS ne soient comprises que par les navigateurs les plus à jour.

Une autre source de problème, d'un navigateur à l'autre, est que les uns et les autres peuvent avoir des différences dans leur utilisation de HTML et comme JS est utilisé pour manipuler le contenu HTML, on peut se retrouver obligé de détecter le navigateur utilisé de façon à s'adapter à toutes situations.

Programmer en JS

Pour exécuter nos programmes, nous aurons besoin d'un interpréteur JS et éventuellement d'un environnement de programmation. On trouve des environnements en ligne mais en général ils prévoient un lien avec une page web, ce qui est la façon la plus courante d'utiliser JS.

Dans ce premier temps, nous voulons seulement découvrir les bases de la syntaxe JS, sans lien avec une page web. Nous allons pour cela utiliser un environnement en ligne, sur le site de TypeScript.

TypeScript est un langage développé par Microsoft et qui a pour but d'améliorer JavasScript. Le site de TypeScript nous permet de tester du JavaScript, nous en profitons.

JS est un langage fait pour les navigateurs, donc pour les internautes, donc pour un très large public. Quand un programme est écrit avec des fautes mineures, JS ne s'arrête pas et il n'envoie pas de message d'erreur. Ce serait gênant pour l'utilisateur inexpérimenté. Il faut aller dans la console pour voir les erreurs.

Exercices

Dans l'environnement en ligne de TypeScript, faites les programmes JS répondant aux questions des exercices suivants.

Dans tous les cas, la seule sortie d'affichage dont vous disposerez sera la console.

Exercice 1 : Algorithme d'Euclide

L'algorithme d'Euclide permet de trouver le PGCD de deux nombres. Par exemple, le PGCD de 49 et 35 est 7 puisque que 49 = 7×7 et 35 = 5×7.

Voici l'algorithme :

Calcul du PGCD
ENTRÉES: a et b deux entiers non nuls
SORTIE: PGCD de a et b
DÉBUT
    TANT QUE b non nul RÉPÉTER
        r = reste division entière a / b
        a = b
        b = r
    RENVOYER a
FIN

Transformer cet algorithme en fonction JS et utilisez la fonction pour répondre à la question : Quel est le PGCD de 615615 et 7826 ?

Exercice 2 : calcul de moyenne

Écrire une fonction moyenne en JS :

  • la fonction reçoit un argument tableau contenant des nombres,
  • si le tableau n'est pas vide, la fonction renvoie la moyenne des éléments contenus dans le tableau,
  • sinon la fonction renvoie 0.

Prévoyez un test de la fonction.

Exercice 3 : parenthèses

Écrire une fonction parenthesesJustes(expression) vérifiant si les parenthèses d'une expression sont bien équilibrées.

Exemples :

  • parenthesesJustes("()") doit renvoyer true
  • parenthesesJustes(")(") doit renvoyer false
  • parenthesesJustes("((3+x)*5)/(4x+1)") doit renvoyer true
  • parenthesesJustes("(3+x)*5)/(4x+1)") doit renvoyer false

Vous pouvez remarquer que j'ai nommé la fonction parenthesesJustes et j'utilise alors la notation camelCase. C'est plutôt celle-ci que l'on rencontre en JS. En Python, on préfère snake_case, ce qui donnerait parentheses_justes. Cela ne change rien au déroulement du programme. Ce sont seulement des usages.

nsi/premiere/javascript_1.txt · Dernière modification : de yadam