recursal/MDN huggingface dataset:
Array.isArray()
===============

La méthode **`Array.isArray()`** permet de déterminer si l'objet passé en argument est un objet `Array`, elle renvoie `true` si le paramètre passé à la fonction est de type `Array` et `false` dans le cas contraire.


```js
Array.isArray([1, 2, 3]); // true
Array.isArray({ toto: 123 }); // false
Array.isArray("tototruc"); // false
Array.isArray(undefined); // false
```

Syntaxe
-------


```js
Array.isArray(value);
```

### Paramètres

`value`

La valeur dont on veut vérifier le type

### Valeur de retour

`true` si la valeur est un tableau (une instance de `Array`), `false` sinon.

Description
-----------

Si l'objet indiqué en paramètre est un `Array`, la méthode renvoie `true`, sinon, elle renvoie `false`.

Voir aussi : « Determining with absolute accuracy whether or not a JavaScript object is an array » (en anglais) pour avoir plus de détails. Si on passe un objet `TypedArray` en argument, ce sera toujours la valeur `false` qui sera renvoyée.

Exemples
--------


```js
// Tous les appels suivant renvoient true
Array.isArray([]);
Array.isArray([1]);
Array.isArray(new Array());
Array.isArray(new Array("a", "b", "c"));
Array.isArray(new Array(3));
// Une petite anecdote: Array.prototype lui même est un Array
Array.isArray(Array.prototype);

// Tous les appels suivant renvoient false
Array.isArray();
Array.isArray({});
Array.isArray(null);
Array.isArray(undefined);
Array.isArray(17);
Array.isArray("Array");
Array.isArray(true);
Array.isArray(false);
Array.isArray(new Uint8Array(32));
Array.isArray({ \_\_proto\_\_: Array.prototype });
```

Prothèse d'émulation (*polyfill*)
---------------------------------

Exécuter ce code avant tout les autres aboutira à la création de la méthode `Array.isArray()`si elle n'est pas nativement prise en charge par le navigateur.


```js
if (!Array.isArray) {
  Array.isArray = function (arg) {
    return Object.prototype.toString.call(arg) === "[object Array]";
  };
}
```

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

| Specification |
| --- |
| ECMAScript Language Specification # sec-array.isarray |

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

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

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

* `Array`
Constructeur Array()
====================

Le constructeur **`Array()`** permet de créer des objets `Array`.

Syntaxe
-------


```js
[element0, element1, ..., elementN]

new Array(element0, element1[, ...[, elementN]])
new Array(longueurTableau)
```

### Paramètres

`elementN`

Un tableau JavaScript est initialisé avec les éléments indiqués à moins qu'un seul argument ne soit passé (cf. `longueurTableau` ci-après). On notera que ce cas au limite ne s'applique qu'avec le constructeur `Array`. Si on utilise la forme littérale (avec les crochets), on peut initialiser un tableau avec un seul élément.

`longueurTableau`

Si le seul argument passé au constructeur `Array` est un entier entre 0 et 2^32-1 (inclus), le constructeur renverra un tableau dont la propriété `length` vaut ce nombre. **Note :** le tableau contiendra des éléments vides (à ne pas confondre avec des éléments qui vaudraient `undefined`). Si l'argument est un autre nombre, une exception `RangeError` sera levée.

Exemples
--------

### Utilisation de la notation littérale

Les tableaux peuvent être créés avec une notation littérale :


```js
let fruits = ["Pomme", "Banane"];

console.log(fruits.length); // 2
console.log(fruits[0]); // "Pomme"
```

### Utilisation du constructeur avec un seul paramètre

On peut créer des tableaux grâce au constructeur avec un seul paramètre numérique. On crée alors un tableau dont la propriété `length` vaut le nombre passé en argument et dont les éléments sont vides.


```js
let fruits = new Array(2);

console.log(fruits.length); // 2
console.log(fruits[0]); // undefined
```

### Utilisation du constructeur avec plusieurs paramètres

Si on utilise plus d'un argument, un nouveau tableau (`Array`) sera construit avec les éléments passés en arguments.


```js
let fruits = new Array("Pomme", "Banane");

console.log(fruits.length); // 2
console.log(fruits[0]); // "Pomme"
```

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

| Specification |
| --- |
| ECMAScript Language Specification # sec-array-constructor |

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

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

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

* La classe `Array`
Array.prototype.join()
======================

La méthode **`join()`** crée et renvoie une nouvelle chaîne de caractères en concaténant tous les éléments d'un tableau (ou d'un objet semblable à un tableau). La concaténation utilise la virgule ou une autre chaîne, fournie en argument, comme séparateur.

Exemple interactif
------------------

Syntaxe
-------


```js
arr.join();
arr.join(séparateur);
```

### Paramètres

`séparateur` Facultatif

Ce paramètre optionnel indique une chaine de caractères pour séparer chaque élément du tableau. Le séparateur est converti en une chaine de caractères si nécessaire. Si ce paramètre n'est pas utilisé, les éléments du tableau seront séparés par une virgule (,). Si ce paramètre est la chaîne vide, les éléments seront accolés les uns aux autres sans espace entre. La valeur par défaut de ce paramètre est `","`.

### Valeur de retour

Une chaîne de caractères composée de tous les éléments du tableau joints les uns aux autres. Si la longueur du tableau (`arr.length`) vaut `0`, c'est la chaîne vide qui est renvoyée. Si le tableau ne contient qu'un élément, sa version texte sera renvoyée sans être suivie du séparateur.

Description
-----------

Les différents éléments du tableau sont convertis en une chaîne de caractères puis fusionnés en une seule chaîne. Si un élément vaut `undefined` ou `null`, il sera converti en la chaîne vide. Cette fonction est générique et peut donc être utilisée avec les objets semblables aux tableaux.

Exemples
--------

### Fusionner un tableau de quatre façons différentes

L'exemple suivant crée un tableau, `a`, avec trois éléments, puis joint le tableau à trois reprises : en utilisant le séparateur par défaut, une virgule et un espace, puis un plus, puis avec la chaîne vide.


```js
var a = new Array("Vent", "Pluie", "Feu");
a.join(); // "Vent,Pluie,Feu"
a.join(", "); // "Vent, Pluie, Feu"
a.join(" + "); // "Vent + Pluie + Feu"
a.join(""); // "VentPluieFeu"
```

### Fusionner un objet semblable à un tableau

Dans l'exemple suivant, on effectue la fusion sur un objet semblable à un tableau (`arguments`) en appelant `Function.prototype.call` sur `Array.prototype.join`.


```js
function f(a, b, c) {
  var s = Array.prototype.join.call(arguments);
  console.log(s);
}
f(1, "a", true); // '1,a,true'
```

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

| Specification |
| --- |
| ECMAScript Language Specification # sec-array.prototype.join |

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

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

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

* `String.prototype.split()`
* `Array.prototype.toString()`
* `TypedArray.prototype.join()`
Array.prototype.keys()
======================

La méthode **`keys()`** renvoie un nouvel objet **`Array Iterator`** qui contient les clefs pour chaque indice du tableau.

Exemple interactif
------------------

Syntaxe
-------


```js
arr.keys();
```

### Valeur de retour

Un nouvel objet itérateur pour `Array`.

Exemples
--------

### Utilisation simple


```js
var arr = ["a", "b", "c"];
var itérateur = arr.keys();

console.log(itérateur.next()); // { value: 0, done: false }
console.log(itérateur.next()); // { value: 1, done: false }
console.log(itérateur.next()); // { value: 2, done: false }
console.log(itérateur.next()); // { value: undefined, done: true }
```

### Un itérateur de clés prend en compte les trous


```js
var arr = ["a", , "c"];
var clésCreuses = Object.keys(arr);
var clésDenses = [...arr.keys()];
console.log(clésCreuses); // ["0", "2"]
console.log(clésDenses); // [0, 1, 2]
```

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

| Specification |
| --- |
| ECMAScript Language Specification # sec-array.prototype.keys |

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

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

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

* `Array.prototype.entries()`
* `Array.prototype.values()`
* Les protocoles d'itération
Array.prototype.toString()
==========================

La méthode **`toString()`** renvoie une chaine de caractères représentant le tableau spécifié et ses éléments.

Exemple interactif
------------------

Syntaxe
-------


```js
arr.toString();
```

### Valeur de retour

Une chaîne de caractères qui représente les éléments du tableau.

Description
-----------

L'objet `Array` redéfinit la méthode `toString` d'`Object`. Pour les objets `Array`, la méthode `toString()` concatène les éléments du tableau et renvoie une chaîne contenant chacun des éléments, séparés par des virgules.

JavaScript appelle la méthode `toString()` automatiquement lorsqu'un tableau doit être représenté par une valeur texte ou lorsqu'on fait référence à un tableau dans une concaténation de chaines de caractères.

### Sémantique d'ECMAScript 5

À partir de JavaScript 1.8.5 (Firefox 4), et en cohérence avec la 5e édition d'ECMAScript, la méthode `toString()` est générique et peut être utilisé avec n'importe quel objet. `Object.prototype.toString()` sera appelée, et la valeur résultante sera renvoyée.

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

| Specification |
| --- |
| ECMAScript Language Specification # sec-array.prototype.tostring |

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

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

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

* `Object.prototype.toSource()`
* `Array.prototype.join()`
Date.prototype.getUTCDate()
===========================

La méthode **`getUTCDate()`** renvoie le jour du mois pour la date renseignée d'après UTC.

Exemple interactif
------------------

Syntaxe
-------


```js
dateObj.getUTCDate();
```

### Valeur de retour

La valeur renseignée par `getUTCDate()` est un entier entre 1 et 31 pour le jour du mois de la date indiquée selon le temps universel.

Exemples
--------

### Utiliser `getUTCDate()`

L'exemple suivant assigne le jour du mois pour la date actuelle, à la variable `jour`.


```js
var aujourdhui = new Date();
var jour = aujourdhui.getUTCDate();
```

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

| Specification |
| --- |
| ECMAScript Language Specification # sec-date.prototype.getutcdate |

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

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

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

* `Date.prototype.getDate()`
* `Date.prototype.getUTCDay()`
* `Date.prototype.setUTCDate()`
Date.prototype.setUTCMonth()
============================

La méthode **`setUTCMonth()`** définit le mois de la date, selon UTC.

Exemple interactif
------------------

Syntaxe
-------


```js
dateObj.setUTCMonth(valeurMois[, valeurJour])
```

### Paramètres

`valeurMois`

Un entier entre 0 et 11, représentant les mois de Janvier à Décembre.

`valeurJour`

Paramètre optionnel, un entier entre 1 et 31, représentant le jour du mois.

### Valeur de retour

Le nombre de millisecondes écoulées entre le premier janvier 1970 minuit, UTC et la date mise à jour.

Description
-----------

Si le paramètre `valeurJour` n'est pas utilisé, la valeur renvoyée par la méthode `getUTCDate()` sera utilisée.

Si un paramètre renseigné n'est pas dans l'intervalle attendues, `setUTCMonth()` tentera de mettre à jour la date en conséquence. Par exemple, si on utilise 15 pour `valeurMois`, l'année sera incrémentée de 1 (année + 1), et 3 sera utilisé pour le mois.

Exemples
--------

### Utiliser `setUTCMonth()`


```js
var leGrandJour = new Date();
leGrandJour.setUTCMonth(11);
```

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

| Specification |
| --- |
| ECMAScript Language Specification # sec-date.prototype.setutcmonth |

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

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

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

* `Date.prototype.getUTCMonth()`
* `Date.prototype.setMonth()`
Date.prototype.getFullYear()
============================

La méthode **`getFullYear()`** renvoie l'année de la date renseignée d'après l'heure locale.

Cette méthode doit être utilisée à la place de `getYear()`.

Exemple interactif
------------------

Syntaxe
-------


```js
dateObj.getFullYear();
```

### Valeur de retour

Un entier correspondant à l'année de la date selon l'heure locale.

Exemples
--------

### Utiliser `getFullYear()`

L'exemple qui suit assigne la valeur à quatre chiffres de l'année courante à la variable `année`.


```js
var aujd = new Date();
var année = aujd.getFullYear();
```

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

| Specification |
| --- |
| ECMAScript Language Specification # sec-date.prototype.getfullyear |

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

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

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

* `Date.prototype.getUTCFullYear()`
* `Date.prototype.setFullYear()`
* `Date.prototype.getYear()`
Date.prototype.setUTCSeconds()
==============================

La méthode **`setUTCSeconds()`** définit les secondes pour la date, selon UTC.

Exemple interactif
------------------

Syntaxe
-------


```js
dateObj.setUTCSeconds(valeurSecondes[, valeurMs])
```

### Paramètres

`valeurSecondes`

Un entier entre 0 et 59.

`valeurMs`

Paramètre optionnel, un nombre entre 0 et 999, représentant les millièmes de secondes.

### Valeur de retour

Le nombre de millisecondes écoulées entre le premier janvier 1970 minuit, UTC et la date mise à jour.

Description
-----------

Si le paramètre `valeurMs` n'est pas utilisée, la valeur renvoyée par la méthode `getUTCMilliseconds()` sera utilisée.

Si un paramètre renseigné est en dehors de l'intervalle attendu, `setUTCSeconds()` tentera de mettre à jour la date en conséquence. Par exemple, si on utilise 100 pour `valeurSecondes`, les minutes de la date seront incrémentées de 1, et 40 sera utilisé pour les secondes.

Exemples
--------

### Utiliser `setUTCSeconds()`


```js
var leGrandJour = new Date();
leGrandJour.setUTCSeconds(20);
```

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

| Specification |
| --- |
| ECMAScript Language Specification # sec-date.prototype.setutcseconds |

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

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

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

* `Date.prototype.getUTCSeconds()`
* `Date.prototype.setSeconds()`
Date.prototype[@@toPrimitive]
=============================

La méthode **`[@@toPrimitive]()`** permet de convertir un objet `Date` en une valeur primitive.

Syntaxe
-------


```js
Date()[Symbol.toPrimitive](hint);
```

### Valeur de retour

La valeur primitive de l'objet `Date`. Selon la valeur de l'argument, la méthode peut renvoyer une chaîne de caractères ou un nombre.

Description
-----------

La méthode `[@@toPrimitive]()` de `Date` renvoie une valeur primitive qui est un nombre ou une chaîne de caractère.

Si le paramètre `hint` vaut `"string"` ou `"default"`, `[@@toPrimitive]()` tentera d'appeler la méthode `toString`, si la propriété `toString()` n'existe pas, elle tentera alors d'appeler la méthode `valueOf`, si cette dernière n'existe pas non plus, `[@@toPrimitive]()` lèvera une exception `TypeError`.

Si le paramètre `hint` vaut `"number"`, `[@@toPrimitive]()` tentera d'abord un appel à `valueOf()` puis ensuite un appel à `toString()`.

Le moteur JavaScript appelle la méthode `[@@toPrimitive]()` afin de convertir un objet en une valeur primitive. Il est rarement nécessaire d'appeler `[@@toPrimitive]()` explicitement dans son propre code, le moteur JavaScript l'utilisera automatiquement lorsqu'il détectera un objet là où une valeur primitive est attendue.

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

| Specification |
| --- |
| ECMAScript Language Specification # sec-date.prototype-@@toprimitive |

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

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

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

* `Symbol.toPrimitive`
Date.prototype.toDateString()
=============================

La méthode **`toDateString()`** renvoie la date contenue dans un objet `Date` sous la forme d'une chaîne de caractères lisible par un humain, en anglais américain et au format suivant :

1. Les trois premières lettre indiquent le jour
2. Les trois lettres suivantes indiquent le mois
3. Les deux chiffres suivants indiquent le jour du mois (et sont complétés avec un 0 devant si besoin)
4. Les quatre chiffres restants indiquent l'année (si besoin complétées avec des 0 comme préfixe)
Exemple interactif
------------------

Syntaxe
-------


```js
dateObj.toDateString();
```

### Valeur de retour

Une chaîne de caractères qui représente la date indiquée, dans un format anglais américain.

Description
-----------

Les instances de `Date` représentent un point précis dans le temps. Appeler `toString` retournera la date formatée sous une forme lisible par un humain, en anglais américain. Pour le moteur JavaScript SpiderMonkey, ceci consiste en : la partie « date » (jour, mois et année) suivie de la partie « heure » (heures, minutes, secondes et fuseau horaire). Il est parfois préférable d'obtenir uniquement la partie « date » ; ceci est possible grâce à la méthode `toDateString()`.

La méthode `toDateString()` est particulièrement utile car, pour les moteurs implémentant fidèlement ECMA-262, il peut y avoir certaines différences dans la chaîne de caractères produite par `toString()` sur les objets `Date`. Le format dépend de l'implémentation et les techniques simples de découpage de texte peuvent ne pas produire un résultat cohérent à travers les différents moteurs.

Exemples
--------

### Utiliser simplement `toDateString()`


```js
var d = new Date(1993, 6, 28, 14, 39, 7);

console.log(d.toString()); // écrit Wed Jul 28 1993 14:39:07 GMT-0600 (PDT)
console.log(d.toDateString()); // écrit Wed Jul 28 1993
```

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

| Specification |
| --- |
| ECMAScript Language Specification # sec-date.prototype.todatestring |

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

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

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

* `Date.prototype.toLocaleDateString()`
* `Date.prototype.toTimeString()`
* `Date.prototype.toString()`
Date.prototype.getMilliseconds()
================================

La méthode **`getMilliseconds()`** renvoie les millièmes de secondes de la date renseignée d'après l'heure locale.

Exemple interactif
------------------

Syntaxe
-------


```js
dateObj.getMilliseconds();
```

### Valeur de retour

Un nombre entre 0 et 999 indiquant le nombre de millisecondes pour la date indiquée, selon l'heure locale.

Exemples
--------

### Utiliser `getMilliseconds()`

L'exemple suivant assigne la partie des millièmes de secondes de l'heure courante à la variable `ms`.


```js
var aujd = new Date();
var ms = aujd.getMilliseconds();
```

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

| Specification |
| --- |
| ECMAScript Language Specification # sec-date.prototype.getmilliseconds |

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

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

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

* `Date.prototype.getUTCMilliseconds()`
* `Date.prototype.setMilliseconds()`
Date.prototype.getUTCDay()
==========================

La méthode **`getUTCDay()`** renvoie le jour de la semaine pour la date renseignée d'après UTC. La numérotation commence à 0, et dimanche est considéré comme le premier jour de la semaine.

Exemple interactif
------------------

Syntaxe
-------


```js
dateObj.getUTCDay();
```

### Valeur de retour

La valeur renvoyée par `getUTCDay()` est un entier correspondant au jour de la semaine de la date indiquée selon le temps universel (0 pour dimanche, 1 pour lundi, 2 pour mardi, et ainsi de suite).

Exemples
--------

### Utiliser `getUTCDay()`

L'exemple suivant assigne le jour de la semaine de la date actuelle à la variable `jourSemaine`.


```js
var aujourdhui = new Date();
var jourSemaine = aujourdhui.getUTCDay();
```

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

| Specification |
| --- |
| ECMAScript Language Specification # sec-date.prototype.getutcday |

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

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

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

* `Date.prototype.getUTCDate()`
* `Date.prototype.getDay()`
* `Date.prototype.setUTCDate()`
Date.prototype.toISOString()
============================

La méthode **`toISOString()`** renvoie une chaîne de caractères au format ISO (ISO 8601 Extended Format), qui peut être décrite de cette façon : **`YYYY-MM-DDTHH:mm:ss.sssZ`** (toujours longue de 24 caractères) ou de cette façon **`±YYYYYY-MM-DDTHH:mm:ss.sssZ`** (27 caractères). Le fuseau horaire est toujours UTC, comme l'indique le suffixe « Z » (pour zéro décalage avec UTC).

Exemple interactif
------------------

Syntaxe
-------


```js
dateObj.toISOString();
```

### Valeur de retour

Une chaîne de caractères représentant la date indiquée au format ISO 8601 selon le temps universel.

Exemples
--------

### Utiliser `toISOString()`


```js
var aujourdhui = new Date("05 October 2011 14:48 UTC");

console.log(aujourdhui.toISOString()); // Renvoie "2011-10-05T14:48:00.000Z"
```


L'exemple ci-dessus analyse une chaîne de caractères non-standard, qui peut donc être incorrectement intérprété par des navigateurs n'utilisant pas Gecko.

Prothèse d'émulation (*polyfill*)
---------------------------------

Cette méthode fut standardisée avec la cinquième édition d'ECMAScript. Afin d'utiliser cette méthode avec les moteurs qui n'en disposent pas nativement, on pourra utiliser ce fragment de code :


```js
if (!Date.prototype.toISOString) {
  (function () {
    function pad(number) {
      if (number < 10) {
        return "0" + number;
      }
      return number;
    }

    Date.prototype.toISOString = function () {
      return (
        this.getUTCFullYear() +
        "-" +
        pad(this.getUTCMonth() + 1) +
        "-" +
        pad(this.getUTCDate()) +
        "T" +
        pad(this.getUTCHours()) +
        ":" +
        pad(this.getUTCMinutes()) +
        ":" +
        pad(this.getUTCSeconds()) +
        "." +
        (this.getUTCMilliseconds() / 1000).toFixed(3).slice(2, 5) +
        "Z"
      );
    };
  })();
}
```

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

| Specification |
| --- |
| ECMAScript Language Specification # sec-date.prototype.toisostring |

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

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

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

* `Date.prototype.toLocaleDateString()`
* `Date.prototype.toTimeString()`
* `Date.prototype.toUTCString()`