recursal/MDN huggingface dataset:
AudioBuffer.duration
====================

La propriéré `duration` de l'interface `AudioBuffer` renvoie un nombre flottant à double précision représentant la durée, en secondes, des données PCM stockées dans le buffer.

Syntaxe
-------


```js
var tableauTampon = audioCtx.createBuffer(
  nombreCanaux,
  nombreFrames,
  contexteAudio.sampleRate,
);
tableauTampon.duration;
```

### Valeur

Nombre flottant à double précision.

Exemple
-------


```js
// Stereo
var nombreCanaux = 2;

// Crée une mémoire tampon vide de 2 secondes
// à la fréquence d'échantillonage du contexte AudioContext
var nombreFrames = contexteAudio.sampleRate \* 2.0;
var tableauDonnees = audioCtx.createBuffer(
  nombreCanaux,
  nombreFrames,
  contexteAudio.sampleRate,
);

bouton.onclick = function () {
  // remplit la mémoire tampon avec du bruit blanc
  // valeurs aléatoires entre -1.0 et 1.0
  for (var canal = 0; canal < nombreCanaux; canal++) {
    // génère le tableau contenant les données
    var tampon = tableauDonnees.getChannelData(canal);
    for (var i = 0; i < nombreFrames; i++) {
      // Math.random() donne une valeur comprise entre [0; 1.0]
      // l'audio doit être compris entre [-1.0; 1.0]
      tampon[i] = Math.random() \* 2 - 1;
    }
  }
  console.log(tableauDonnees.duration);
};
```

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

| Specification |
| --- |
| Web Audio API # dom-audiobuffer-duration |

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

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

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

* Utiliser la Web Audio API
AudioBuffer.sampleRate
======================

La propriété `sampleRate` de l'interface `AudioBuffer` renvoie un nombre à virgule flottante représentant la taux d'échantillonage, en échantillons par seconde, des données PCM stockées dans la mémoire-tampon.

Syntaxe
-------


```js
var tableauMemoireTampon = audioCtx.createBuffer(
  nombreCanaux,
  nombreFrames,
  contexteAudio.sampleRate,
);
tableauMemoireTampon.sampleRate;
```

### Valeur

Un nombre à virgule flottante indiquant le taux d'échantillonnage actuelle des données du tampon, en echantillonnage par seconde.

Exemple
-------


```js
// Stereo
var nombreCanaux = 2;

// Crée une mémoire tampon vide de 2 secondes
// à la fréquence d'échantillonage du contexte AudioContext
var nombreFrames = contexteAudio.sampleRate \* 2.0;
var tableauDonnees = audioCtx.createBuffer(
  nombreCanaux,
  nombreFrames,
  contexteAudio.sampleRate,
);

bouton.onclick = function () {
  // remplit la mémoire tampon avec du bruit blanc
  // valeurs aléatoires entre -1.0 et 1.0
  for (var canal = 0; canal < nombreCanaux; canal++) {
    // génère le tableau contenant les données
    var tampon = tableauDonnees.getChannelData(canal);
    for (var i = 0; i < nombreFrames; i++) {
      // Math.random() donne une valeur comprise entre [0; 1.0]
      // l'audio doit être compris entre [-1.0; 1.0]
      tampon[i] = Math.random() \* 2 - 1;
    }
  }
  console.log(tableauDonnees.sampleRate);
};
```

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

| Specification |
| --- |
| Web Audio API # dom-audiobuffer-samplerate |

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

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

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

* Utiliser la Web Audio API
AudioBuffer.numberOfChannels
============================

La propriété `numberOfChannels` de l'interface `AudioBuffer` renvoie un nombre entier représentant le nombre de canaux audio diiscrets décrits par les données PCM stockées dans la mémoire-tampon.

Syntaxe
-------


```js
var tableauMemoireTampon = audioCtx.createBuffer(
  nombreCanaux,
  nombreFrames,
  contexteAudio.sampleRate,
);
tableauMemoireTampon.numberOfChannels;
```

### Valeur

Un nombre entier.

Exemple
-------


```js
// Stereo
var nombreCanaux = 2;

// Crée une mémoire tampon vide de 2 secondes
// à la fréquence d'échantillonage du contexte AudioContext
var nombreFrames = contexteAudio.sampleRate \* 2.0;
var tableauDonnees = audioCtx.createBuffer(
  nombreCanaux,
  nombreFrames,
  contexteAudio.sampleRate,
);

bouton.onclick = function () {
  // remplit la mémoire tampon avec du bruit blanc
  // valeurs aléatoires entre -1.0 et 1.0
  for (var canal = 0; canal < nombreCanaux; canal++) {
    // génère le tableau contenant les données
    var tampon = tableauDonnees.getChannelData(canal);
    for (var i = 0; i < nombreFrames; i++) {
      // Math.random() donne une valeur comprise entre [0; 1.0]
      // l'audio doit être compris entre [-1.0; 1.0]
      tampon[i] = Math.random() \* 2 - 1;
    }
  }
  console.log(tableauDonnees.numberOfChannels);
};
```

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

| Specification |
| --- |
| Web Audio API # dom-audiobuffer-numberofchannels |

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

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

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

* Utiliser la Web Audio API
AudioBuffer.getChannelData()
============================

La méthode `getChannelData()` de l'interface `AudioBuffer` renvoie un `Float32Array` contenant les données PCM associées au canal spécifié (0 correspondant au premier canal).

Syntaxe
-------


```js
var tableauDonnees = contexteAudio.createBuffer(
  nombreCanaux,
  nombreFrames,
  contexteAudio.sampleRate,
);
var tampon = tableauDonnees.getChannelData(canal);
```

### Valeur

Un `Float32Array` (en-US).

Exemple
-------

Dans l'exemple suivant crée un buffer de 2 secondes, le remplit avec du bruit blanc puis le lit via un `AudioBufferSourceNode`. Vous pouvez aussi exécuter le code, or voir le code source.


```js
var contexteAudio = new (window.AudioContext || window.webkitAudioContext)();
var bouton = document.querySelector("button");
var preformate = document.querySelector("pre");
var monScript = document.querySelector("script");

preformate.innerHTML = monScript.innerHTML;

// Stéréo
var nombreCanaux = 2;
// Crée un buffer vide de 2 secondes
// au taux d'échantillonage du contexte audio
var nombreFrames = contexteAudio.sampleRate \* 2.0;

var tableauDonnees = contexteAudio.createBuffer(
  nombreCanaux,
  nombreFrames,
  contexteAudio.sampleRate,
);

bouton.onclick = function () {
  // remplit la mémoire tampon avec du bruit blanc
  // valeurs aléatoires entre -1.0 et 1.0
  for (var canal = 0; canal < nombreCanaux; canal++) {
    // génère le tableau contenant les données
    var tampon = tableauDonnees.getChannelData(canal);
    for (var i = 0; i < nombreFrames; i++) {
      // Math.random() donne une valeur comprise entre [0; 1.0]
      // l'audio doit être compris entre [-1.0; 1.0]
      tampon[i] = Math.random() \* 2 - 1;
    }
  }

  // Récupère un AudioBufferSourceNode.
  // C'est un AudioNode à utiliser quand on veut jouer AudioBuffer
  var source = contexteAudio.createBufferSource();

  // assigne le buffer au AudioBufferSourceNode
  source.buffer = tableauDonnees;

  // connecte le AudioBufferSourceNode avec
  // la destination pour qu'on puisse entendre le son
  source.connect(contexteAudio.destination);

  // lance la lecture du so
  source.start();
};
```

Paramètres
----------

channel

The channel property is an index representing the particular channel to get data for. An index value of 0 represents the first channel. If the `channel` index value is greater than of equal to `AudioBuffer.numberOfChannels`, an `INDEX_SIZE_ERR` exception will be thrown.

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

| Specification |
| --- |
| Web Audio API # dom-audiobuffer-getchanneldata |

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

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

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

* Utiliser la Web Audio API
AudioBuffer.length
==================

La propriété `length` de l'interface `AudioBuffer` renvoie un entier représentant la longueur, en trames d'échantillonage, des données PCM stockées dans la mémoire-tampon.

Syntaxe
-------


```js
var tableauMemoireTampon = contexteAudio.createBuffer(
  nombreCanaux,
  nombreFrames,
  contexteAudio.sampleRate,
);
tableauMemoireTampon.length;
```

### Valeur

Un nombre entier.

Exemple
-------


```js
// Stereo
var nombreCanaux = 2;

// Crée une mémoire tampon vide de 2 secondes
// à la fréquence d'échantillonage du contexte AudioContext
var nombreFrames = contexteAudio.sampleRate \* 2.0;
var tableauDonnees = audioCtx.createBuffer(
  nombreCanaux,
  nombreFrames,
  contexteAudio.sampleRate,
);

bouton.onclick = function () {
  // remplit la mémoire tampon avec du bruit blanc
  // valeurs aléatoires entre -1.0 et 1.0
  for (var canal = 0; canal < nombreCanaux; canal++) {
    // génère le tableau contenant les données
    var tampon = tableauDonnees.getChannelData(canal);
    for (var i = 0; i < nombreFrames; i++) {
      // Math.random() donne une valeur comprise entre [0; 1.0]
      // l'audio doit être compris entre [-1.0; 1.0]
      tampon[i] = Math.random() \* 2 - 1;
    }
  }
  console.log(tableauDonnees.length);
};
```

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

| Specification |
| --- |
| Web Audio API # dom-audiobuffer-length |

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

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

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

* Utiliser la Web Audio API
AudioBuffer()
=============

**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 **`AudioBuffer`** créer un nouvel objet `AudioBuffer`.

Syntaxe
-------


```js
var audioBuffer = new AudioBuffer([options]);
var audioBuffer = new AudioBuffer(context[, options]);
```

### Parameters

*options* Facultatif

Les options sont les suivantes:

* `length`: Longueur de l'échantillonnage du tampon.
* `numberOfChannels`: Nombre de cannaux du buffer. La valeur par défaut est 1.
* `sampleRate`: Taux d'échantillonnage du buffer en Hz. La valeur par défaut est le taux d'échantillonnage du `context` utilisé dans la construction de cet objet

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

| Specification |
| --- |
| Web Audio API # dom-audiobuffer-audiobuffer |

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

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

La méthode `copyFromChannel()` de l'interface `AudioBuffer` copie les échantillons de l'un des canaux de l'`AudioBuffer` dans un tableau.

Syntaxe
-------


```js
tableauDonnees.copyFromChannel(destination, numeroCanal, decalageDebut);
```

### Paramètres

*destination*

Un tableau `Float32Array` (en-US) dans lequel copier les données.

*channelNumber*

Le numéro du canal de l'AudioBuffer depuis lequel copier les données. Si *channelNumber* est supérieur ou égal à `AudioBuffer.numberOfChannels`, une exception `INDEX_SIZE_ERR est` levée.

*startInChannel* Facultatif

Un offset optionnel à partir duquel copier les données. Si la valeur de *startInChannel* est supérieure à `AudioBuffer.length`, une exception `INDEX_SIZE_ERR` est levée.

Exemple
-------


```js
var tableauDonnees = contextAudio.createBuffer(
  2,
  frameCount,
  contextAudio.sampleRate,
);
var autreTableau = new Float32Array(length);
tableauDonnees.copyFromChannel(autreTableau, 1, 0);
```

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

| Specification |
| --- |
| Web Audio API # dom-audiobuffer-copyfromchannel |

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

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

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

* Utiliser la Web Audio API
AudioBuffer.copyToChannel()
===========================

La méthode `copyToChannel()` de l'interface `AudioBuffer` copie les échantillons du tableau source vers le canal de l'`AudioBuffer` spécifié.

Syntaxe
-------


```js
myArrayBuffer.copyToChannel(source, channelNumber, startInChannel);
```

### Paramètres

*source*

Le tableau `Float32Array` depuis lequel copier les données.

*channelNumber*

Le numéro du canal de l'`AudioBuffer` dans lequel copier les données. Si *channelNumber* est supérieur ou égal à `AudioBuffer.numberOfChannels`, une exception `INDEX_SIZE_ERR est` levée.

*startInChannel Facultatif*

Un offset optionnel à partir duquel copier les données. Si la valeur de *startInChannel* est supérieure à `AudioBuffer.length`, une exception `INDEX_SIZE_ERR` est levée.

Exemple
-------


```js
var tableauDonnees = contextAudio.createBuffer(
  2,
  frameCount,
  contextAudio.sampleRate,
);
var autreTableau = new Float32Array();
// Copy les données depuis le second canal vers le second tableau.
tableauDonnees.copyFromChannel(autreTableau, 1, 0);
// Copie les données depuis le second tableau vers le premier canal du premier tableau. A présent les deux canaux ont des données identiques.
tableauDonnees.copyToChannel(autreTableau, 0, 0);
```

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

| Specification |
| --- |
| Web Audio API # dom-audiobuffer-copytochannel |

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

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

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

* Utiliser la Web Audio API
CanvasGradient.addColorStop()
=============================

La méthode CanvasGradient.addColorStop () ajoute un nouvel arrêt, défini par un `décalage` et une `couleur`, au dégradé. Si le décalage n'est pas compris entre 0 et 1, une erreur INDEX\_SIZE\_ERR est générée, si la couleur ne peut pas être analysée en tant que `<color>` CSS, une erreur SYNTAX\_ERR est générée.

Syntaxe
-------


```js
void gradient.addColorStop(décalage, couleur);
```

### Paramètres

décalage

Un nombre entre 0 et 1. Une erreur INDEX\_SIZE\_ERR est générée, si le nombre n'est pas dans cette plage.

couleur

Une `<color>` CSS. Une erreur SYNTAX\_ERR est générée, si la valeur ne peut pas être analysée en tant que valeur <color> CSS.

Exemples
--------

### Utilisation de la méthode `addColorStop`

Il s'agit seulement d'un simple fragment de code qui utilise la méthode `addColorStop` avec un objet `CanvasGradient`.

#### HTML


```html
<canvas id="canevas"></canvas>
```


#### JavaScript


```js
var canevas = document.getElementById("canevas");
var ctx = canevas.getContext("2d");

var degrade = ctx.createLinearGradient(0, 0, 200, 0);
degrade.addColorStop(0, "green");
degrade.addColorStop(1, "white");
ctx.fillStyle = degrade;
ctx.fillRect(10, 10, 200, 100);
```


Modifiez le code ci-dessous et voyez vos modifications mises à jour en direct dans le canevas :

#### Code jouable
```

<canvas id="canvas" width="400" height="200" class="playable-canvas"></canvas>
<div class="playable-buttons">
  <input id="edit" type="button" value="Edit" />
  <input id="reset" type="button" value="Reset" />
</div>
<textarea id="code" class="playable-code">
var gradient = ctx.createLinearGradient(0,0,200,0);
gradient.addColorStop(0,"green");
gradient.addColorStop(1,"white");
ctx.fillStyle = gradient;
ctx.fillRect(10,10,200,100);</textarea
>
```


```
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
var textarea = document.getElementById("code");
var reset = document.getElementById("reset");
var edit = document.getElementById("edit");
var code = textarea.value;

function drawCanvas() {
  ctx.clearRect(0, 0, canvas.width, canvas.height);
  eval(textarea.value);
}

reset.addEventListener("click", function () {
  textarea.value = code;
  drawCanvas();
});

edit.addEventListener("click", function () {
  textarea.focus();
});

textarea.addEventListener("input", drawCanvas);
window.addEventListener("load", drawCanvas);
```

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

| Specification |
| --- |
| HTML Standard # dom-canvasgradient-addcolorstop-dev |

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

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

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

* L'interface ladéfinissant, `CanvasGradient`
* `CanvasRenderingContext2D.createLinearGradient()`
* `CanvasRenderingContext2D.createRadialGradient()` (en-US)
DOMImplementation.createHTMLDocument()
======================================

**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 **`DOMImplementation.createHTMLDocument()`** crée un nouveau `Document` HTML.

Syntaxe
-------


```js
newDoc = document.implementation.createHTMLDocument(titre);
```

### Paramètres

*title* Facultatif (excepté dans IE)

C'est une `DOMString` qui contient le titre à donner au nouveau document HTML.

Exemple
-------

Dans cet exemple, on crée un nouveau document HTML que l'on insère dans un `<iframe>` dans le document courant.

Ci-dessous, le code HTML pour cet exemple:


```html
<body>
  <p>
    Cliquez <a href="javascript:makeDocument()">ici</a> pour créer un nouveau
    document et l'insérer au dessous.
  </p>
  <iframe id="laFrame" src="about:blank" />
</body>
```


L'implémentation en JavaScript de la méthode `makeDocument()`:


```js
function makeDocument() {
  var frame = document.getElementById("laFrame");

  var doc = document.implementation.createHTMLDocument("Nouveau Document");
  var p = doc.createElement("p");
  p.innerHTML = "Ceci est un nouveau paragraphe.";

  try {
    doc.body.appendChild(p);
  } catch (e) {
    console.log(e);
  }

  // Copie le nouveau document HTML dans la frame

  var destDocument = frame.contentDocument;
  var srcNode = doc.documentElement;
  var newNode = destDocument.importNode(srcNode, true);

  destDocument.replaceChild(newNode, destDocument.documentElement);
}
```


Le code des lignes 4 à 12 permet la création du nouveau document HTML et l'insertion de contenu dans ce dernier. La ligne 4 utilise la méthode `createHTMLDocument()` pour construire le nouveau document HTML et définir son `<title>` comme "Nouveau Document". Dans les lignes 5 et 6, est créé un nouvel élément paragraphe avec un simple contenu, enfin, les lignes 8 à 12 permettent l'insertion de ce nouveau paragraphe dans le nouveau document.

La ligne 16 récupère le `contentDocument` *(contenu du document)* du cadre ; c'est le document dans lequel nous allons injecter le nouveau contenu. Les deux lignes suivantes permettent d'importer le contenu du nouveau document dans le nouveau contexte du document. Pour finir, la ligne 20 remplace le contenu du cadre par le contenu du nouveau document.

Voir l'exemple sur une page

Le document retourné est préconstruit avec le code HTML suivant :


```html
<!doctype html>
<html>
  <head>
    <title>titre</title>
  </head>
  <body></body>
</html>
```

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

| Specification |
| --- |
| DOM Standard # ref-for-dom-domimplementation-createhtmldocument① |

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

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

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

* L'interface `DOMImplementation`.
DOMImplementation.createDocument()
==================================

La méthode **`DOMImplementation.createDocument()`** crée et retourne un `XMLDocument`.

Syntaxe
-------


```js
doc = document.implementation.createDocument(
  namespaceURI,
  qualifiedNameStr,
  documentType,
);
```

### Paramètres

*namespaceURI*

Est une `DOMString` *(chaîne de caractères)* contenant l'URI de l'espace de noms du document à créer, `ou null` si le document n'appartient à aucun espace de noms.


*qualifiedNameStr*

Est une `DOMString` *(chaîne de caractères)* contenant le nom qualifié, c'est-à-dire optionnellement un préfixe et deux points, plus le nom local de l'élément racine, du document à créer.


*documentType* Facultatif

Est le `DocumentType` du document à créer. Vaut `null` par défaut.

Exemple
-------


```js
var doc = document.implementation.createDocument(
  "http://www.w3.org/1999/xhtml",
  "html",
  null,
);
var body = document.createElementNS("http://www.w3.org/1999/xhtml", "body");
body.setAttribute("id", "abc");
doc.documentElement.appendChild(body);
alert(doc.getElementById("abc")); // [objet HTMLBodyElement]
```

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

| Specification |
| --- |
| DOM Standard # ref-for-dom-domimplementation-createdocument② |

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

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

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

* L'interface `DOMImplementation` à laquelle la méthode appartient.
DOMImplementation.createDocumentType()
======================================

La méthode **`DOMImplementation.createDocumentType()`** renvoie un objet `DocumentType` qui peut être utilisé avec `DOMImplementation.createDocument` lors de la création du document ou peut être intégré au document existant avec des méthodes comme `Node.insertBefore()` ou `Node.replaceChild()`.

Syntaxe
-------


```js
doctype = document.implementation.createDocumentType(
  qualifiedNameStr,
  publicId,
  systemId,
);
```

### Paramètres

*qualifiedNameStr*

est une `DOMString` (*chaîne de caractères*) contenant le nom qualifié comme `svg:svg`.


*publicId*

est une `DOMString` (*chaîne de caractères*) contenant l'identifiant `PUBLIC`.


*systemId*

est une `DOMString` (*chaîne de caractères*) contenant les identifiants `SYSTEM`.

Exemple
-------


```js
var dt = document.implementation.createDocumentType(
  "svg:svg",
  "-//W3C//DTD SVG 1.1//EN",
  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd",
);
var d = document.implementation.createDocument(
  "http://www.w3.org/2000/svg",
  "svg:svg",
  dt,
);
alert(d.doctype.publicId); // -//W3C//DTD SVG 1.1//EN
```

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

| Specification |
| --- |
| DOM Standard # ref-for-dom-domimplementation-createdocumenttype① |

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

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

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

* L'interface `DOMImplementation` à laquelle elle appartient.
DOMImplementation.hasFeature()
==============================

**Obsolète:** Cette fonctionnalité a été supprimée des standards du Web. Bien que quelques navigateurs puissent encore la supporter, elle est en cours d'éradication. Ne l'utilisez ni dans d'anciens projets, ni dans de nouveaux. Les pages et applications Web l'utilisant peuvent cesser de fonctionner à tout moment.

La méthode **`DOMImplementation.hasFeature()`** renvoie un `Boolean` (en-US) (*booléen*) indiquant si une fonctionnalité donnée est prise en charge. Cette méthode est dépréciée et les navigateurs modernes renvoient `true` (*vrai*) dans tous les cas.

Les différentes implémentations ont été assez divergentes quant au type de caractéristiques signalées. La dernière version de la spécification a décidé de forcer cette méthode à toujours renvoyer `true`, là où la fonctionnalité était précisée et utilisée.

Syntaxe
-------


```js
flag = document.implementation.hasFeature(feature, version);
```

### Paramètres

*feature*

est une `DOMString` (*chaîne de caractères*) représentant le nom de la fonctionnalité.

*version*

est une `DOMString` (*chaîne de caractères*) représentant la version de la spécification définissant la fonctionnalité.

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

| Specification |
| --- |
| DOM Standard # dom-domimplementation-hasfeature |

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

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

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

* L'interface `DOMImplementation` à laquelle elle est appartient.