recursal/MDN huggingface dataset:
PerformanceNavigationTiming.unloadEventStart
============================================

**Expérimental:** **Cette fonction est expérimentale**  
Puisque cette fonction est toujours en développement dans certains navigateurs, veuillez consulter le tableau de compatibilité pour les préfixes à utiliser selon les navigateurs.  
Il convient de noter qu'une fonctionnalité expérimentale peut voir sa syntaxe ou son comportement modifié dans le futur en fonction des évolutions de la spécification.

La propriété en lecture seule **`unloadEventStart`** renvoie un `timestamp` représentant la valeur temporelle égale au temps immédiatement avant que l'agent utilisateur ne commence l'événement de déchargement du document précédent. S'il n'y a pas de document précédent, cette propriété renvoie `0`.

Syntaxe
-------


```js
perfEntry.unloadEventStart;
```

### Valeur de retour

Un `timestamp` représentant la valeur temporelle égale au temps immédiatement avant que l'agent utilisateur ne lance l'événement de déchargement du document précédent.

Exemple
-------

L'exemple suivant illustre l'utilisation de cette propriété.


```js
function print\_nav\_timing\_data() {
  // Utilise getEntriesByType() pour obtenir uniquement les événements de type "navigation".
  let perfEntries = performance.getEntriesByType("navigation");

  for (let i = 0; i < perfEntries.length; i++) {
    console.log("= Entrée de navigation : entry[" + i + "]");
    let p = perfEntries[i];
    // propriétés du DOM
    console.log(
      "Contenu du DOM chargé = " +
        (p.domContentLoadedEventEnd - p.domContentLoadedEventStart),
    );
    console.log("Contenu du DOM complet = " + p.domComplete);
    console.log("Contenu du DOM interactif = " + p.interactive);

    // temps de chargement et de déchargement des documents
    console.log("Document chargé = " + (p.loadEventEnd - p.loadEventStart));
    console.log(
      "Document déchargé = " + (p.unloadEventEnd - p.unloadEventStart),
    );

    // autres propriétés
    console.log("type = " + p.type);
    console.log("redirectCount = " + p.redirectCount);
  }
}
```

Spécifications
--------------

| Specification |
| --- |
| Navigation Timing Level 2 # dom-performancenavigationtiming-unloadeventstart |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
PerformanceNavigationTiming.unloadEventEnd
==========================================

**Expérimental:** **Cette fonction est expérimentale**  
Puisque cette fonction est toujours en développement dans certains navigateurs, veuillez consulter le tableau de compatibilité pour les préfixes à utiliser selon les navigateurs.  
Il convient de noter qu'une fonctionnalité expérimentale peut voir sa syntaxe ou son comportement modifié dans le futur en fonction des évolutions de la spécification.

La propriété **`unloadEventEnd`** en lecture seule retourne un `timestamp` représentant la valeur temporelle égale au temps immédiatement après la fin de l'événement de déchargement du document précédent par l'agent utilisateur. S'il n'y a pas de document précédent, la valeur de cette propriété est `0`.

Syntaxe
-------


```js
perfEntry.unloadEventEnd;
```

### Valeur de retour

Un `timestamp` représentant une valeur temporelle égale au temps immédiatement après que l'agent utilisateur ait terminé l'événement de déchargement du document précédent.

Exemple
-------

L'exemple suivant illustre l'utilisation de cette propriété.


```js
function print\_nav\_timing\_data() {
  // Utilise getEntriesByType() pour obtenir uniquement les événements de type "navigation".
  let perfEntries = performance.getEntriesByType("navigation");

  for (let i = 0; i < perfEntries.length; i++) {
    console.log("= Entrée de navigation : entry[" + i + "]");
    let p = perfEntries[i];
    // propriétés du DOM
    console.log(
      "Contenu du DOM chargé = " +
        (p.domContentLoadedEventEnd - p.domContentLoadedEventStart),
    );
    console.log("Contenu du DOM complet = " + p.domComplete);
    console.log("Contenu du DOM interactif = " + p.interactive);

    // temps de chargement et de déchargement des documents
    console.log("Document chargé = " + (p.loadEventEnd - p.loadEventStart));
    console.log(
      "Document déchargé = " + (p.unloadEventEnd - p.unloadEventStart),
    );

    // autres propriétés
    console.log("type = " + p.type);
    console.log("redirectCount = " + p.redirectCount);
  }
}
```

Spécifications
--------------

| Specification |
| --- |
| Navigation Timing Level 2 # dom-performancenavigationtiming-unloadeventend |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
PerformanceNavigationTiming.toJSON()
====================================

**Expérimental:** **Cette fonction est expérimentale**  
Puisque cette fonction est toujours en développement dans certains navigateurs, veuillez consulter le tableau de compatibilité pour les préfixes à utiliser selon les navigateurs.  
Il convient de noter qu'une fonctionnalité expérimentale peut voir sa syntaxe ou son comportement modifié dans le futur en fonction des évolutions de la spécification.

La méthode **`toJSON()`** est un *sérialiseur* - elle renvoie une représentation JSON de l'objet `PerformanceNavigationTiming`.

Syntaxe
-------


```js
const json = resourcePerfEntry.toJSON();
```

### Arguments

Aucun.

### Valeur de retour

`json`

Un objet JSON qui est la sérialisation de l'objet `PerformanceNavigationTiming` comme une carte avec des entrées de l'interface héritée la plus proche et avec des entrées pour chacun des attributs sérialisables.

Exemple
-------


```js
// Obtient une entrée de performance des ressources
let perfEntries = performance.getEntriesByType("navigation");
let entry = perfEntries[0];

// Récupère le JSON et l'affiche dans les journaux
let json = entry.toJSON();
let s = JSON.stringify(json);
console.log("PerformanceNavigationTiming.toJSON() = " + s);
```

Spécifications
--------------

| Specification |
| --- |
| Navigation Timing Level 2 # dom-performancenavigationtiming-tojson |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
DOMPoint.z
==========

**Expérimental:** **Cette fonction est expérimentale**  
Puisque cette fonction est toujours en développement dans certains navigateurs, veuillez consulter le tableau de compatibilité pour les préfixes à utiliser selon les navigateurs.  
Il convient de noter qu'une fonctionnalité expérimentale peut voir sa syntaxe ou son comportement modifié dans le futur en fonction des évolutions de la spécification.

La propriété en lecture seule **`z`** de l'interface **`DOMPointReadOnly`** représente la coordonnée z d'un point.

En général, z positif signifie vers l'extérieur de l'écran (autrement dit, opposée à la direction de l'utilisateur) et négatif vers l'intérieur de l'écran (dans la même direction que l'utilisateur).

Syntaxe
-------


```js
var zPos = DOMPoint.z;
```

### Valeur

Un double.

Spécifications
--------------

| Specification |
| --- |
| Geometry Interfaces Module Level 1 # dom-dompointreadonly-z |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

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

* `DOMPoint`
DOMPoint.w
==========

**Expérimental:** **Cette fonction est expérimentale**  
Puisque cette fonction est toujours en développement dans certains navigateurs, veuillez consulter le tableau de compatibilité pour les préfixes à utiliser selon les navigateurs.  
Il convient de noter qu'une fonctionnalité expérimentale peut voir sa syntaxe ou son comportement modifié dans le futur en fonction des évolutions de la spécification.

La propriété en lecture seule **`w`** de l'interface **`DOMPointReadOnly`** représente la perspective d'un point.

Syntaxe
-------


```js
var perspective = DOMPoint.w;
```

### Valeur

Un double.

Spécifications
--------------

| Specification |
| --- |
| Geometry Interfaces Module Level 1 # dom-dompointreadonly-w |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

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

* `DOMPoint`
DOMPoint.y
==========

**Expérimental:** **Cette fonction est expérimentale**  
Puisque cette fonction est toujours en développement dans certains navigateurs, veuillez consulter le tableau de compatibilité pour les préfixes à utiliser selon les navigateurs.  
Il convient de noter qu'une fonctionnalité expérimentale peut voir sa syntaxe ou son comportement modifié dans le futur en fonction des évolutions de la spécification.

La propriété en lecture seule **`y`** de l'interface **`DOMPointReadOnly`** représente la coordonnée y d'un point.

En général, y positif signifie en haut et négatif en bas (par rapport à l'origine).

Syntaxe
-------


```js
var yPos = DOMPoint.y;
```

### Valeur

Un double.

Spécifications
--------------

| Specification |
| --- |
| Geometry Interfaces Module Level 1 # dom-dompointreadonly-y |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

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

* `DOMPoint`
DOMPoint.x
==========

**Expérimental:** **Cette fonction est expérimentale**  
Puisque cette fonction est toujours en développement dans certains navigateurs, veuillez consulter le tableau de compatibilité pour les préfixes à utiliser selon les navigateurs.  
Il convient de noter qu'une fonctionnalité expérimentale peut voir sa syntaxe ou son comportement modifié dans le futur en fonction des évolutions de la spécification.

La propriété en lecture seule **`x`** de l'interface **`DOMPointReadOnly`** représente la coordonnée x d'un point.

En général, x positif signifie à droite et négatif à gauche (par rapport à l'origine).

Syntaxe
-------


```js
var xPos = DOMPoint.x;
```

### Valeur

Un double.

Spécifications
--------------

| Specification |
| --- |
| Geometry Interfaces Module Level 1 # dom-dompointreadonly-x |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

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

* `DOMPoint`
NodeList.item()
===============

Renvoie un noeud depuis une `NodeList` par l'index. Cette méthode ne lance pas d'exceptions tant que vous fournissez des arguments. Une valeur `null` est renvoyée si l'index est hors des limites et une `TypeError` est lancée si aucun argument n'est fourni.

Syntaxe
-------


```js
nodeItem = nodeList.item(index);
```


* `nodeList` est une `NodeList`. Elle est généralement obtenue à partir d'une autre propriété ou méthode DOM, telle que childNodes.
* `index` est l'index du noeud à chercher. L'index commence à zéro.
* `nodeItem` est le numéro d'`index` du noeud dans la `nodeList` retourné par la méthode `item`.
Syntaxe alternative
-------------------

JavaScript propose également une syntaxe semblable à un tableau pour obtenir un élément d'une liste de nœuds par index :


```js
nodeItem = nodeList[index];
```

Exemple
-------


```js
var tables = document.getElementsByTagName("table");
var firstTable = tables.item(1); // ou simplement tables[1] - renvoie le second tableau dans DOM
```

Spécification
-------------

DOM Level 1 Core: NodeList.item()

DOM Level 2 Core: NodeList.item()

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
NodeList.entries()
==================

La méthode **`NodeList.entries()`** renvoie un `itérateur` permettant de parcourir toutes les paires clé / valeur contenues dans cet objet . Les valeurs sont des objets `Node`.

Syntaxe
-------


```js
list.entries();
```

### Valeur retournée

renvoie un `itérateur`.

Exemple
-------


```js
var node = document.createElement("div");
var kid1 = document.createElement("p");
var kid2 = document.createTextNode("hey");
var kid3 = document.createElement("span");
node.appendChild(kid1);
node.appendChild(kid2);
node.appendChild(kid3);

var list = node.childNodes;

// Utiliser for..of
for (var entry of list.entries()) {
  console.log(entry);
}
```


résultat :
```

Array [ 0, <p> ]
Array [ 1, #text "hey" ]
Array [ 2, <span> ]
```

Spécifications
--------------

#### No specification found

No specification data found for `api.NodeList.entries`.  
Check for problems with this page or contribute a missing `spec_url` to mdn/browser-compat-data. Also make sure the specification is included in w3c/browser-specs.

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

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

* `Node`
* `NodeList`
NodeList.values()
=================

La méthode **`NodeList.values()`** renvoie un `itérateur` permettant de parcourir toutes les valeurs contenues dans cet objet. Les valeurs sont des objets `Node` (*noeud*).

Syntaxe
-------


```js
nodeList.values();
```

### Valeur retournée

Renvoie un `itérateur`.

Exemple
-------


```js
var node = document.createElement("div");
var kid1 = document.createElement("p");
var kid2 = document.createTextNode("hey");
var kid3 = document.createElement("span");

node.appendChild(kid1);
node.appendChild(kid2);
node.appendChild(kid3);

var list = node.childNodes;

// Utilisation de for..of
for (var value of list.values()) {
  console.log(value);
}
```


Le résultat est :
```

<p>
#text "hey"
<span>
```

Spécifications
--------------

#### No specification found

No specification data found for `api.NodeList.values`.  
Check for problems with this page or contribute a missing `spec_url` to mdn/browser-compat-data. Also make sure the specification is included in w3c/browser-specs.

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

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

* `Node`
* `NodeList`
NodeList.length
===============

Résumé
------

`length` renvoie le nombre d'éléments dans une `NodeList`.

Syntaxe
-------


```js
numItems = nodeList.length;
```


* `numItems` est un entier (*integer*), valeur représentant le nombre d'éléments dans une `NodeList`.
Exemple
-------


```js
// tous les paragraphes dans le document
var items = document.getElementsByTagName("p");
// pour chaque élément de la liste,
// ajouter l'élément entier en tant que chaîne de HTML
var gross = "";
for (var i = 0; i < items.length; i++) {
  gross += items[i].innerHTML;
}
// gross est maintenant tout le HTML pour les paragraphes
```

Notes
-----

Malgré l'emplacement de cette page dans la référence, `length` n'est pas une propriété d'Element, mais plutôt d'une `NodeList`. Les objets NodeList sont retournés à partir des méthodes DOM comme document.getElementsByTagName.

`length` est une propriété très commune dans la programmation de DOM. Il est très courant de tester la longueur d'une liste (pour voir si elle existe) et de l'utiliser comme itérateur dans une boucle for, comme dans l'exemple ci-dessus.

Spécification
-------------

length

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
NodeList.keys()
===============

La méthode **`NodeList.keys()`** renvoie un `itérateur` permettant de parcourir toutes les clés contenues dans cet objet. Les clés sont des `unsigned integer` (*entier non signé*).

Syntaxe
-------


```js
nodeList.keys();
```

### Valeur retournée

Renvoie un `itérateur`.

Exemple
-------


```js
var node = document.createElement("div");
var kid1 = document.createElement("p");
var kid2 = document.createTextNode("hey");
var kid3 = document.createElement("span");

node.appendChild(kid1);
node.appendChild(kid2);
node.appendChild(kid3);

var list = node.childNodes;

// Utilisation de for..of
for (var key of list.keys()) {
  console.log(key);
}
```


Le résultat est :
```

0
1
2
```

Spécifications
--------------

#### No specification found

No specification data found for `api.NodeList.keys`.  
Check for problems with this page or contribute a missing `spec_url` to mdn/browser-compat-data. Also make sure the specification is included in w3c/browser-specs.

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

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

* `Node`
* `NodeList`
NodeList.prototype.forEach()
============================

La méthode **`forEach()`** de l'interface `NodeList` appelle le rappel donné en paramètre une fois pour chaque paire de valeurs dans la liste, dans l'ordre d'insertion.

Syntaxe
-------


```js
nodeList.forEach(callback[, thisArg]);
```

### Paramètres

`callback`

Fonction à exécuter pour chaque élément, contenant éventuellement 3 arguments :

*`currentValue`*

L'élément en cours de traitement dans la NodeList.

`currentIndex`

L'index de l'élément en cours de traitement dans la NodeList.

*`listObj`*

L'objet NodeList auquel `forEach()` est appliqué.


`thisArg` Facultatif

Valeur à utiliser comme `this` lors de l'exécution du `callback` (*rappel*).

### Valeur retournée

`undefined` (*indéfini*).

Exceptions
----------

*Aucune*.

Exemple
-------


```js
var node = document.createElement("div");
var kid1 = document.createElement("p");
var kid2 = document.createTextNode("hey");
var kid3 = document.createElement("span");

node.appendChild(kid1);
node.appendChild(kid2);
node.appendChild(kid3);

var list = node.childNodes;

list.forEach(function (currentValue, currentIndex, listObj) {
  console.log(currentValue + ", " + currentIndex + ", " + this);
}, "myThisArg");
```


résultat :
```

[object HTMLParagraphElement], 0, myThisArg
[object Text], 1, myThisArg
[object HTMLSpanElement], 2, myThisArg
```

Polyfill
--------

Ce polyfill ajoute une compatibilité à tous les navigateurs prenant en charge ES5 :


```js
if (window.NodeList && !NodeList.prototype.forEach) {
  NodeList.prototype.forEach = function (callback, thisArg) {
    thisArg = thisArg || window;
    for (var i = 0; i < this.length; i++) {
      callback.call(thisArg, this[i], i, this);
    }
  };
}
```

Spécifications
--------------

| Specification |
| --- |
| DOM Standard # interface-nodelist |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

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

* `Node`
* `NodeList`
FederatedCredential.provider
============================

**Expérimental:** **Cette fonction est expérimentale**  
Puisque cette fonction est toujours en développement dans certains navigateurs, veuillez consulter le tableau de compatibilité pour les préfixes à utiliser selon les navigateurs.  
Il convient de noter qu'une fonctionnalité expérimentale peut voir sa syntaxe ou son comportement modifié dans le futur en fonction des évolutions de la spécification.

La propriété **`provider`**, rattachée à l'interface `FederatedCredential`, fournit une chaîne de caractères `USVString` qui décrit un fournisseur d'identité fédéré.

Syntaxe
-------


```js
var provider = FederatedCredential.provider;
```

### Valeur

Une chaîne de caractères `USVString` identifiant un fournisseur d'identité fédéré.

Exemples
--------


```js
// TBD
```

Spécifications
--------------

| Specification |
| --- |
| Credential Management Level 1 # dom-federatedcredential-provider |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
FederatedCredential
===================

**Non standard:** Cette fonctionnalité n'est ni standard, ni en voie de standardisation. Ne l'utilisez pas pour des sites accessibles sur le Web : elle ne fonctionnera pas pour tout utilisateur. Il peut également y avoir d'importantes incompatibilités entre les implémentations et son comportement peut être modifié dans le futur.

Le constructeur **`FederatedCredential`** permet de créer un nouvel objet `FederatedCredential`.

Pour les navigateurs qui le prennent en charge, une instance de cette classe pourra être passée comme propriété `credential` pour l'objet `init` utilisé comme argument pour `fetch`.

Syntaxe
-------


```js
var mesCredentials = new FederatedCredential(init);
```

### Paramètres

`init`

Les propriétés de cet objet sont :

* `provider` : une chaîne de caractères `USVString` identifiant le fournisseur d'information d'authentification.

Spécifications
--------------

| Specification |
| --- |
| Credential Management Level 1 # dom-federatedcredential-federatedcredential |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
DOMRect.DOMRect()
=================

**Expérimental:** **Cette fonction est expérimentale**  
Puisque cette fonction est toujours en développement dans certains navigateurs, veuillez consulter le tableau de compatibilité pour les préfixes à utiliser selon les navigateurs.  
Il convient de noter qu'une fonctionnalité expérimentale peut voir sa syntaxe ou son comportement modifié dans le futur en fonction des évolutions de la spécification.

Le constructeur **`DOMRect()`** crée un nouvel objet `DOMRect`.

Syntaxe
-------


```js
var myDOMRect = new DOMRect(x, y, width, height);
```

### Paramètres

x

La coordonnée `x` de l'orginie du `DOMRect`.

y

La coordonnée `y` de l'origine du `DOMRect`.

width

La largeur du `DOMRect`.

height

La hauteur du `DOMRect`.

Exemples
--------

Pour créer un nouveau `DOMPoint`, vous pouvez exécuter une ligne de code telle que celle-ci :


```js
myDOMRect = new DOMRect(0, 0, 100, 100);
// l'exécution de 'myDOMRect' dans la console devrait alors renvoyer
// DOMRect { x: 0, y: 0, width: 100, height: 100, top: 0, right: 100, bottom: 100, left: 0 }
```

Spécifications
--------------

| Specification |
| --- |
| Geometry Interfaces Module Level 1 # dom-domrect-domrect |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

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

* `DOMPoint`
* `DOMRect`