# Programmation JavaScript/Outils de développement

* Introduction
    Programmer en deux minutes
*   * Page wiki
*   * Compteur en temps réel
*   * Site dans un document
* Outils de développement
* Syntaxe
** Ligne d'instruction
** Ordre d'évaluation
** Bloc d'instructions
** Identificateurs
** Expression littérale
** Commentaire
** Mots réservés
** Variables
** Opérateurs
** Structures de contrôle
** Exceptions et erreurs
** Fonctions utilisateur
** Évènement
* Objets prédéfinis
** window
** document
** navigator
** Array
** Boolean
** Date
** Error
** Function
** Math
** Number
** Object
** String
** Element
** RegExp
* Fonctions prédéfinies
* Programmation avancée
** Opérateurs de bits
** Fermeture
** Programmation objet
** Notation JSON
** AJAX
** Stockage
** Générateurs
** Interface DOM
** Objets Microsoft
* Frameworks
** Dojo
    Hello World
    Widgets
    Ressources
** jQuery
** Node.js
** React.js
* Tests
** Ava
** Jest
** Cypress
* Débogage
* Erreurs connues
* Références
* Introduction
    Programmer en deux minutes
*   * Page wiki
*   * Compteur en temps réel
*   * Site dans un document
* Outils de développement
* Syntaxe
** Ligne d'instruction
** Ordre d'évaluation
** Bloc d'instructions
** Identificateurs
** Expression littérale
** Commentaire
** Mots réservés
** Variables
** Opérateurs
** Structures de contrôle
** Exceptions et erreurs
** Fonctions utilisateur
** Évènement
* Objets prédéfinis
** window
** document
** navigator
** Array
** Boolean
** Date
** Error
** Function
** Math
** Number
** Object
** String
** Element
** RegExp
* Fonctions prédéfinies
* Programmation avancée
** Opérateurs de bits
** Fermeture
** Programmation objet
** Notation JSON
** AJAX
** Stockage
** Générateurs
** Interface DOM
** Objets Microsoft
* Frameworks
** Dojo
    Hello World
    Widgets
    Ressources
** jQuery
** Node.js
** React.js
* Tests
** Ava
** Jest
** Cypress
* Débogage
* Erreurs connues
* Références
[ Modifier le sommaire ]

## Gestionnaires de paquets

Pour installer des bibliothèques, il existe plusieurs gestionnaires de paquets.

### npm
#### Installation

Sur Windows, le télécharger de : https://nodejs.org/en/download/
Sur Linux :

#### Utilisation

Par exemple pour une installation en environnement de développement uniquement :

### yarn
#### Installation

Réputé plus rapide que le précédent, il s'installe à partir de ce dernier :

#### Utilisation

Par exemple pour une installation en environnement de développement uniquement :
NB : dans les premières versions, c'était :
Pour lancer le processus en tâche de fond qui compile et minifie le code dans node_modules :

## IDE

Un environnement de développement intégré (EDI ou IDE en anglais pour Integrated Development Environment) est un programme regroupant un éditeur de texte, des outils automatiques de fabrication, et souvent un débogueur. Il en existe pour pratiquement tous les langages informatique et le Javascript n'échappe pas à la règle. Les IDE pour javascript sont souvent pourvus de fonctionnalité pour écrire en HTML.
Les utilités principales des IDE sont :
* L'analyse du code (Syntaxique, fonctionnel, objet...)
    Permet d'éviter de faire des erreurs et de parcourir rapidement les différentes parties du code.
* Le débogueur
    Indique où se trouve les erreurs et de quel type d'erreur il s'agit.
* L'auto complétion
    Permet de visionner les méthodes et paramètres des objets javascript que vous utilisez.
* La documentation
    L'aide de chaque fonction est accessible rapidement.
* Les générateurs de code
    Des exemples de code permettent d'obtenir des programmes très rapidement.

### Libre

* Visual Studio Code
* NetBeans
* Aptana (Basé sur Eclipse)

### Propriétaire

* PhpStorm (ou WebStorm)
* Dreamweaver

## En ligne

* https://jsfiddle.net/ : un interpréteur en ligne, pratique pour tester des commandes.
* http://jsbin.com/#javascript,html : interpréteur en ligne.
* https://www.htmlstrip.com/javascript-validator : validateur en ligne.

### Plugins de navigateur

Il existe des plugins de navigateurs comme Greasemonkey ou Tampermonkey permettant de stocker des javascripts à exécuter sur certains sites (auquel on n'a pas forcément accès au code). Cela permet par exemple de préremplir des formulaires ou d'ajouter des hyperliens sur des mots reconnus par regex.