recursal/MDN huggingface dataset:
Tableau (Array)
===============

En anglais, un ***array***, parfois appelé en français « tableau » ou « liste », est une collection de données (primitives ou objets selon le langage). Ils sont utilisés pour stocker plusieurs valeurs dans une seule variable. Ceci est comparé à une variable qui ne peut stocker qu'une seule valeur.

Chaque élément d'un *array* a un numéro qui lui est associé, appelé index numérique, qui permet d'y accéder. En JavaScript, ils commencent à l'index zéro et peuvent être manipulés avec différentes méthodes.

À quoi ressemble-t-il en JavaScript ?


```js
var myArray = [1, 2, 3, 4];

var catNamesArray = ["Jacqueline", "Sophia", "Autumn"];

//Des arrays en JavaScript peuvent contenir différents types de données, comme indiqué ci-dessus.
```

Voir aussi
----------

### Culture générale

* Tableau (structure de données) sur Wikipédia
### Informations techniques

* *`Array`* en JavaScript sur MDN
Validateur
==========

Un validateur est un programme qui vérifie les erreurs de syntaxe d'un code informatique. Ils peuvent être créés pour tous les formats et langages, mais dans notre contexte on parle d'outils vérifiant le HTML, CSS, et XML.

Voir aussi
----------

### Culture générale

* Petite liste de validateurs
Zone de grille
==============

Une **zone de grille** se compose d'une ou plusieurs cellules de grille formant une zone rectangulaire sur la grille. Les zones de grille sont créées lors du placement d'un élément en utilisant le placement basé sur les lignes ou lors de la définition de zones avec les zones de grille nommées.

![Un schéma illustrant une zone de grille en vert turquoise sur une grille quadrillée.](/fr/docs/Glossary/Grid_Areas/1_grid_area.png)

Les zones de grille sont *obligatoirement* rectangulaires. Il n'est pas possible de créer des zones de grille en forme de T ou de L par exemple.

Exemples
--------

Dans l'exemple qui suit, on a un conteneur de grille avec deux éléments de grille. Ces éléments sont nommés à l'aide de la propriété `grid-area` et placés sur la grille à l'aide de `grid-template-areas`. On obtient ainsi deux zones de grille, la première couvrant quatre cellules de grille et la seconde couvrant deux cellules.
```

\* {
  box-sizing: border-box;
}

.wrapper {
  border: 2px solid #f76707;
  border-radius: 5px;
  background-color: #fff4e6;
}

.wrapper > div {
  border: 2px solid #ffa94d;
  border-radius: 5px;
  background-color: #ffd8a8;
  padding: 1em;
  color: #d9480f;
}
```



```css
.wrapper {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: 100px 100px;
  grid-template-areas:
    "a a b"
    "a a b";
}
.item1 {
  grid-area: a;
}
.item2 {
  grid-area: b;
}
```



```html
<div class="wrapper">
  <div class="item1">Item</div>
  <div class="item2">Item</div>
</div>
```

Voir aussi
----------

### Référence des propriétés

* `grid-template-columns`
* `grid-template-rows`
* `grid-auto-rows`
* `grid-auto-columns`
* `grid-template-areas`
* `grid-area`
### Approfondir

* Guide sur la disposition avec les grilles CSS : Les concepts de base des grilles CSS
* Guide sur la disposition avec les grilles CSS  Définir des zones sur une grille
* La définition des zones de grille dans le module de spécification sur les grilles CSS
Robots.txt
==========

Robots.txt est un fichier qui est habituellement placé à la racine d'un site web. Il détermine si les robots d'indexation ont ou non l'autorisation d'accéder au site web.

Par exemple, l'administrateur d'un site peut interdire aux robots d'indexation de parcourir un certain dossier (et tous les fichiers contenus à l'intérieur) ou de parcourir un fichier spécifique, généralement pour empêcher ces fichiers d'être indexés par d'autres moteurs de recherche.

Voir aussi
----------

### Culture générale

* Protocole d'exclusion des robots sur Wikipédia
Same-origin policy
==================

La **same-origin policy** (*politique de même origine*) est un mécanisme de sécurité critique qui restreint la manière dont un document ou un script chargé depuis une origine peut interagir avec une ressource d'une autre origine. Elle aide à isoler les documents potentiellement malicieux, ce qui réduit les vecteurs d'attaque possibles.

Voir Same origin policy pour plus d'informations.

Voir aussi
----------

* Glossaire MDN :
    + CORS
    + origine
* Same-origin policy
Balise
======

En HTML une balise est utilisée pour créer un element. Le **nom** d'un élément HTML est le **nom** utilisé dans des chevrons comme par exemple <p> pour un paragraphe. Notez que le **nom** de la balise fermante est précédé par un caractère barre oblique, "</p>", et que pour les éléments vides la balise de fin n'est pas nécessaire ni permise. Si les attributs ne sont pas mentionnés, les valeurs par défaut s'appliquent pour chaque cas.

Voir aussi
----------

* Élément HTML sur Wikipédia
* Balises HTML sur W3
* Introduction au HTML
Éléments flexibles
==================

Les enfants directs d'un conteneur flexible (éléments définis avec `display: flex` ou `display: inline-flex`) deviennent des **éléments flexibles** (*flex items*).

Des passages continus de texte à l'intérieur des conteneurs flexibles deviendront également des éléments flexibles.

Voir aussi
----------

### Références de la propriété

* `align-self`
* `flex-basis`
* `flex-grow`
* `flex-shrink`
* `order`
### En lire plus

* Guide Flexbox CSS : *Les concepts de base pour flexbox*
* Guide Flexbox CSS : *Ordonner les éléments flexibles*
* Guide Flexbox CSS : *Contrôler les proportions des boîtes flexibles le long de l'axe principal*
Slug
====

Un Slug est la partie d'identification unique d'une adresse Web, généralement à la fin de l'URL. Dans le contexte de MDN, c'est la partie de l'URL qui suit "*<locale>/docs/*".

Il peut également s'agir du dernier composant lorsqu'un nouveau document est créé sous un document parent ; par exemple, le slug de cette page est `Glossary/Slug` .

Voir aussi
----------

* Choosing titles and slugs (en-US)
Requête de pré-vérification
===========================

Une requête de pré-vérification cross-origin CORS est une requête de vérification faite pour contrôler si le protocole CORS est autorisé.

C'est une requête utilisant la méthode `OPTIONS` qui utilise trois en-têtes HTTP : La méthode `Access-Control-Request-Method` (en-US), les en-têtes `Access-Control-Request-Headers` et `Origin`.

Une requête de pré-vérification est automatiquement envoyée par le navigateur quand cela est nécessaire. Dans les cas normaux, les intégrateurs n'ont pas besoin de construire eux-mêmes cette requête.

Par exemple, un client peut demander au serveur si celui-ci autorise l'usage de la méthode `DELETE` dans la requête HTTP, avant d'envoyer la "vraie" requête avec la méthode `DELETE` :
```

OPTIONS /resource/foo
Access-Control-Request-Method: DELETE
Access-Control-Request-Headers: origin, x-requested-with
Origin: https://foo.bar.org
```


Si le serveur l'accepte, alors celui-ci va répondre à la requête de pré-vérification en envoyant une réponse HTTP contenant l'entête `Access-Control-Allow-Methods` dont la valeur contiendra dans sa liste la méthode `DELETE` :
```

HTTP/1.1 200 OK
Content-Length: 0
Connection: keep-alive
Access-Control-Allow-Origin: https://foo.bar.org
Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE
Access-Control-Max-Age: 86400
```


À remarquer dans cet exemple que le serveur autorise les méthodes : POST ; GET ; OPTIONS et DELETE.

Voir aussi
----------

* CORS
* `OPTIONS`
Bande passante
==============

La bande passante est la mesure de la quantité d'informations qui peut passer dans une connexion de données sur une période de temps donnée. Elle est généralement exprimée en multiples de bits-par-seconde (bps), par exemple mégabits-par-seconde (Mbps) ou gigabits-par-seconde (Gbps).

Pour en savoir plus
-------------------

* Bande passante sur Wikipédia
Falsy (Valeurs de type fausses)
===============================

Les valeurs fausses (**falsy**) sont des valeurs évaluées comme fausses quand elles sont évaluées dans un contexte booléen.

JavaScript utilise le type contrainte dans les contextes Booléens comme les conditions et les boucles.

Exemples
--------

Exemples de valeurs *fausses* en Javascript (qui sont traduites par false (*faux*) et, par ce fait, court-circuitent le bloc **if**) :


```js
if (false) {
  // Le code ici ne sera pas exécuté
}

if (null) {
  // Le code ici ne sera pas exécuté
}

if (undefined) {
  // Le code ici ne sera pas exécuté
}

if (0) {
  // Le code ici ne sera pas exécuté
}

if (-0) {
  // Le code ici ne sera pas exécuté
}

if (0n) {
  // Le code ici ne sera pas exécuté
}

if (NaN) {
  // Le code ici ne sera pas exécuté
}

if ("") {
  // Le code ici ne sera pas exécuté
}

if (document.all) {
  // Le code ici ne sera pas exécuté
}
```


`document.all` a été utilisé par le passé pour détecter le navigateur et la spécification HTML définit une infraction délibérée aux standards ECMAScript afin de garder une compatibilité ascendante (`if (document.all) { // Code Internet Explorer ici (Sauf IE11) }` ou en utilisant `document.all` sans vérifier s'il existe d'abord : `document.all.foo`).

Parfois écrit falsey, bien qu'en anglais, transformer un mot en adjectif avec un *-y* fait disparaître tout e final (noise => noisy, ice => icy, shine => shiny) .

Voir aussi
----------

* Truthy
* Boolean
ITU
===

L'Union Internationale des Télécommunications (ITU) est l'organisation autorisée par les Nations Unies à établir des normes et des règles pour les télécommunication, y compris le télégraphe, la radio, la téléphonie et Internet. De la définition des règles pour garantir que les transmissions arrivent là où elles doivent aller et de la création du signal d'alerte «SOS» utilisé en code Morse, l'UIT joue depuis longtemps un rôle clé dans la manière dont nous utilisons la technologie pour échanger des informations et des idées.

À l'ère de l'Internet, le rôle de l'UIT consistant à établir des normes pour les formats de données vidéo et audio utilisés pour le streaming, la téléconférence et à d'autres fins. Par exemple, l'UIT et le Moving Picture Experts Group (MPEG) ont travaillé ensemble pour développer et publier, ainsi que pour maintenir, les diverses spécifications MPEG, telles que MPEG-2 (ITU H.262), AVC (ITU H.264 ) et HEVC (ITU H.265).

Apprendre plus
--------------

### Culture générale

* Site Web de l'UIT
### Voir aussi

* Portail d'histoire de l'UIT
Mot-clé
=======

Un **mot-clé** est un mot ou une phrase décrivant un contenu. En ligne, les mots-clés sont utilisés comme requêtes pour les moteurs de recherche ou comme des termes identifiant le contenu de sites web.

Lorsque vous utilisez un moteur de recherche, les mots-clés désignent ce que vous recherchez, et le moteur de recherche renvoie les pages web pertinentes. Pour des résultats plus précis, essayez des mots-clés plus spécifiques, comme "Mustang GTO Bleue" au lieu de simplement "Mustang". Les pages web emploient aussi les mots-clés dans les balises meta (dans la section `<head>`) pour décrire le contenu des pages afin que les moteurs de recherche puissent mieux identifier et organiser les pages web.

Pour approfondir
----------------

### Culture générale

* Mot-clé sur Wikipédia
WAI
===

La WAI ou Web Accessibility Initiative a été lancée par le World Wide Web Consortium (W3C) pour rendre le web plus accessibie aux personnes handicapées, celles-ci pouvant avoir besoin d'un navigateur ou d'appareils non standards.

Voir aussi
----------

### Culture générale

* Site web de la WAI
* WAI sur Wikipédia
Modularité
==========

Le terme Modularité se réfère au degré qu'ont les composants d'un système à être séparés et recombinés, il s'agit également de la division d'un paquet logiciel en unités logiques. L'avantage d'un système modulaire est qu'il peut traiter ses composants de manière indépendante.

Voir aussi
----------

* Programmation modulaire sur Wikipédia
Générateur de nombres pseudo-aléatoires
=======================================

Un **PRNG** (*pseudorandom number generator*, ou générateur de nombres pseudo-aléatoires en français) est un algorithme qui génère des nombres selon une séquence complexe et apparemment non prévisible. Les véritables nombres aléatoires (issus, disons, d'une source radioactive) sont totalement imprévisibles, tandis que les résultats de tous les algorithmes peuvent être prédits, et un PRNG renvoie les mêmes nombres lorsque les mêmes paramètres initiaux ou *graines* sont utilisés.

En fonction de la qualité de l'algorithme et de l'entropie de l'ensemencement, les PRNG diffèrent en degré de sécurité et donc dans leurs applications.

Voir aussi
----------

### Culture générale

* Générateur de nombres pseudo-aléatoires sur Wikipédia
* `Math.random()`, une fonction PRNG intégrée à JavaScript
Undefined
=========

Une Valeur **primitive** affectée automatiquement aux **variables** qui viennent d'être déclarées ou aux **arguments** **formels** pour lesquels il n'y a pas d'**arguments réels**.

Voir aussi
----------

### Culture générale

* Article en anglais sur les valeurs indéfinies sur Wikipédia
### Référence technique

* Structures de données
WebDAV
======

**WebDAV** (*Web Distributed Authoring and Versioning*) est une extension HTTP qui permet aux développeurs web de faire des mises à jour de contenu à distance depuis un client.

WebDav est rarement utilisé seul, mais deux extensions sont très répandues : CalDAV (accès distant aux données d'agenda) et CardDAV (accès distant au carnet d'adresses).

WebDAV donne aux clients les possibilités suivantes

* ajout, suppression et récupération des métadonnées de pages web (e.g. auteur ou date de création)
* création de liens dans des pages de tout type de média vers des pages qui y sont associées
* création d'ensembles de documents et récupération de listes hiérarchiques
* copie et déplacement de pages web
* verrouillage d'un document pour restreindre son édition à une seule personne à la fois
Voir aussi
----------

### Culture générale

* WebDAV sur Wikipédia
### Référence technique

* RFC 2518
* RFC 3253
* RFC 3744
Machine d'état
==============

Une machine d'état est une abstraction mathématique utilisée pour concevoir des algorithmes. Une machine d'état lit un ensemble d'entrées et passe à un état différent en fonction de ces entrées.

Un état est une description de l'état d'un système en attente d'exécution d'une transition. Une transition est un ensemble d'actions à exécuter lorsqu'une condition est remplie ou qu'un événement est reçu. Dans un diagramme d'état, les cercles représentent chaque état possible et les flèches représentent les transitions entre les états.

En regardant l'état final, vous pouvez discerner quelque chose sur la série d'entrées menant à cet état.

Il existe deux types de machines d'état de base :

machine déterministe à états finis

Ce type ne permet qu'une seule transition possible pour toute entrée autorisée. C'est comme l'état du "if" dans `if x == true then doThis else doThat`. L'ordinateur doit exécuter l'une des deux options.

machine non déterministe à états finis

Étant donné un état, une entrée peut conduire à plus d'un état différent.

*Figure 1 : Machine déterministe à états finis.*

![](/fr/docs/Glossary/State_machine/statemachine1.png)

Dans la *Figure 1*, l'état commence en State 1; l'état change vers State 2 en donnant l'entrée 'X', ou vers State 3 en donnant l'entrée 'Y'.

*Figure 2 : Machine non déterministe à états finis.*

![](/fr/docs/Glossary/State_machine/statemachine2.png)

En *Figure 2*, étant donné l'entrée 'X', l'état peut persister ou passer à State 2.

Notez que toute expression régulière peut être représentée par une machine d'état.

Voir aussi
----------

### Culture générale

* Automate fini sur Wikipédia
* Automates UML sur Wikipédia
* Machine de Moore sur Wikipédia
* Machine de Mealy sur Wikipédia
MitM
====

Une **attaque du monstre du milieu** (en anglais *manipulator-in-the-middle attack*, abrégé en MitM) ou aussi attaque de l'homme du milieu consiste à intercepter une communication entre deux systèmes. Cela peut par exemple se produit lorsqu'un routeur Wi-Fi a été compromis.

Prenons une analogie avec le courrier postal : si vous échangez des lettres, la factrice ou le facteur peut intercepter chaque lettre que vous postez : l'ouvrir, la lire, la modifier, puis la reconditionner et ensuite l'envoyer au destinataire initial. Lorsque ce dernier vous répond par courrier, à nouveau, la factrice ou le facteur peut l'ouvrir, la lire, la modifier éventuellement, la renvelopper et vous la remettre. Vous ne savez pas que votre courrier a été intercepté, le circuit de distribution du courrier est invisible pour vous et votre destinataire.

Qu'il s'agisse du courrier postal ou des communications électroniques, il est difficile de se défendre contre les attaques MitM. Voici quelques conseils :

* N'ignorez pas les avertissements liés aux certificats. Vous pourriez être connecté à un serveur d'hameçonnage ou à un serveur imposteur.
* Les sites sensibles qui ne sont pas chiffrés à l'aide de HTTPS ne sont pas fiables sur les réseaux Wi-Fi publics.
* Avant de vous authentifier sur un site, vérifiez dans la barre d'URL que son adresse commence bien par `https://`, ce qui indique que le chiffrement est en place.
Voir aussi
----------

* La page OWASP sur les attaques du monstre du milieu (en anglais)
* Le site PortSwigger : les dernières actualités concernant les attaques du monstre du milieu (en anglais)
* La page Wikipédia correspondante
Typage statique
===============

Un langage à **typage statique** est un langage (comme Java, C ou C++) avec lequel les types des variables sont connus lors de la compilation et doivent être spécifiés expressément par le programmeur. Dans la plupart de ces langages, les types doivent être expressément indiqués par le programmeur ; dans d'autres cas (comme OCaml), l'inférence de type permet au programmeur de ne pas indiquer les types de variables.

Pour en savoir plus
-------------------

### Culture générale

* Type sur Wikipédia
IPv4
====

IPv4 est la 4e version du protocole de communication d'Internet et la première version vraiment déployée.

Formalisé pour la première fois en 1981, IPv4 prend ces racines dans le développement initial d'ARPAnet. IPv4 est un protocole sans connexion pour être utilisé sur des couches de liaison par commutation de packet (ethernet). IPv6 va progressivement remplacer IPv4 à cause des problème de sécurité d'IPv4 et des limitations du nombre d'adresses. (La version 5 a été conçue en 1979 comme une expérimentation du protocole Internet Stream, qui n'a pourtant jamais été appelé IPv5.)

Voir aussi
----------

* IPv4 sur Wikipédia
Élément
=======

 Un élément est une partie d'une page web. En XML et HTML, un élément peut contenir une donnée, un morceau de texte ou une image, ou même parfois ne rien contenir du tout. Un élément est typiquement constitué d'une balise ouvrante ayant quelques attributs, du contenu textuel et d'une balise fermante.

 ![Example: in <p class="nice">Hello world!</p>, '<p class="nice">' is an opening tag, 'class="nice"' is an attribute and its value, 'Hello world!' is enclosed text content, and '</p>' is a closing tag.](/fr/docs/Glossary/Element/anatomy-of-an-html-element.png)

Les éléments et les balises *ne* sont *pas* la même chose. Les balises commencent ou clôturent un élément dans le code source, alors que les éléments font partie du DOM, le document qui sert de modèle pour afficher la page dans le navigateur.

Voir aussi
----------

* L'interface `Element`, qui représente l'élément dans le DOM.
* Plus d'informations à propos des éléments.
* Les éléments personnalisés dans la section Composants Web (en-US)(en)
SLD
===

Un SLD (Second Level Domain) est un domaine qui est hiérarchiquement directement sous un TLD.

Il est en général utilisé comme un moyen de différencier les différentes fonctions d'un serveur ou pour délimiter des zones sous un même domaine. Par exemple, `www` est un SLD habituellement utilisé pour indiquer le domaine qui pointe vers un serveur web.

Autre exemple, dans `developer.mozilla.org`, le SLD `developer` sert à indiquer que le sous-domaine contient la section développeur du site web de mozilla.

Pour en savoir plus
-------------------

### Culture générale

* SLD sur Wikipédia
Programmation orientée prototype
================================

**La programmation orientée prototype** est un style de programmation orientée objet dans laquelle les classes ne sont pas explicitement définies, mais plutôt dérivées par ajout des propriétés et des méthodes à une instance d'une autre classe ou, moins fréquemment, par ajouts à un objet vide.

En termes simples, ce type de style permet de créer un objet sans définir sa classe.

Voir aussi
----------

### Culture générale

* Programmation orientée prototype sur Wikipédia
SGML
====

**SGML** (*Standard Generalized Markup Language*) est une spécification ISO pour définir des langages de balisage générique pour des documents.

Sur le web, HTML 4, XHTML et XML sont des exemples populaires de langages basés sur SGML. On peut remarquer que depuis sa cinquième édition, HTML n'est désormais plus basé sur SGML et possède ses propres règles d'analyse.

Voir aussi
----------

* SGML sur Wikipédia
* Introduction au SGML (en anglais)
Node.js
=======

Node.js est un environnement JavaScript multiplateforme qui permet aux développeurs de créer des applications réseaux et côté serveur en utilisant JavaScript.

Pour en savoir plus
-------------------

### Connaissances générales

* Node.js sur Wikipédia
* Site officiel Node.js
### Informations techniques

* Documentation de référence (en)
* Tutoriels (en)
Flex
====

`flex` est une nouvelle valeur ajoutée à la propriété CSS `display`. De même qu'`inline-flex`, elle transforme l'élément auquel elle s'applique en un conteneur flexible et les enfants de l'élément en éléments flexible. Les éléments participent alors à la mise en page flexible, et toutes les propriétés définies dans le module de mise en page de boîte flexible CSS peuvent être appliquées.

La propriété `flex` est un raccourci pour les propriétés `flex-grow`, `flex-shrink` et `flex-basis`.

De plus `<flex>` peut se référer à une longueur flexible dans une grille de mise en page CSS.

Voir aussi
----------

### Références de la propriété

* `align-content`
* `align-items`
* `align-self`
* `flex`
* `flex-basis`
* `flex-direction`
* `flex-flow`
* `flex-grow`
* `flex-shrink`
* `flex-wrap`
* `justify-content`
* `order`
### En lire plus

* *CSS Flexible Box Layout Module Level 1 Specification (en)*
* Guide Flexbox CSS : *Les concepts de base pour flexbox*
* Guide Flexbox CSS : *Les liens entre flexbox et les autres méthodes de disposition*
* Guide Flexbox CSS : *Aligner des éléments dans un conteneur flexible*
* Guide Flexbox CSS : *Ordonner les éléments flexibles*
* Guide Flexbox CSS : *Contrôler les proportions des boîtes flexibles le long de l'axe principal*
* Guide Flexbox CSS : *Maîtriser le passage à la ligne des éléments flexibles*
* Guide Flexbox CSS : *Cas d'utilisation classiques de flexbox*
Domaine
=======

Un domaine fait partie d'un réseau informatique au sein duquel une entité contrôle les ressources de traitement de l'information, par exemple un site web.

Voir aussi
----------

* Nom de domaine sur Wikipédia
CRUD
====

**CRUD** (create, read, update, delete) (*créer, lire, mettre à jour, supprimer)* est un acronyme pour les façons dont on peut fonctionner sur des données stockées. C'est un moyen mnémotechnique pour les quatre fonctions de base du stockage persistant. CRUD fait généralement référence aux opérations effectuées dans une base de données ou un magasin de données, mais peut également s'appliquer aux fonctions de niveau supérieur d'une application telles que les suppressions logicielles lorsque les données ne sont pas supprimées mais marquées comme supprimées via un état.

Voir aussi
----------

### Culture générale

* CRUD sur Wikipédia