From a065e04d529da1d847b5062a12c46d916408bf32 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 21:46:22 -0500 Subject: update based on https://github.com/mdn/yari/issues/2028 --- .../1.1/index.html" | 76 ------ .../1.2/index.html" | 92 ------- .../1.3/index.html" | 141 ----------- .../1.4/index.html" | 28 --- .../1.5/index.html" | 40 --- .../1.6/index.html" | 33 --- .../1.7/index.html" | 38 --- .../1.8.1/index.html" | 30 --- .../1.8.5/index.html" | 128 ---------- .../1.8/index.html" | 41 ---- .../index.html" | 72 ------ .../index.html" | 273 --------------------- .../support_ecmascript_5_par_mozilla/index.html" | 46 ---- .../fonctions/arguments/caller/index.html | 54 ---- .../instructions/for_each...in/index.html | 80 ------ .../objets_globaux/array/observe/index.html | 90 ------- .../objets_globaux/array/unobserve/index.html | 89 ------- .../objets_globaux/arraybuffer/transfer/index.html | 100 -------- .../objets_globaux/date/tolocaleformat/index.html | 80 ------ .../objets_globaux/function/arity/index.html | 32 --- .../objets_globaux/function/isgenerator/index.html | 53 ---- .../objets_globaux/number/tointeger/index.html | 56 ----- .../objets_globaux/object/count/index.html | 42 ---- .../objets_globaux/object/eval/index.html | 47 ---- .../objets_globaux/object/getnotifier/index.html | 53 ---- .../objets_globaux/object/nosuchmethod/index.html | 76 ------ .../objets_globaux/object/observe/index.html | 154 ------------ .../objets_globaux/object/parent/index.html | 42 ---- .../objets_globaux/object/unobserve/index.html | 103 -------- .../objets_globaux/object/unwatch/index.html | 70 ------ .../objets_globaux/object/watch/index.html | 150 ----------- .../objets_globaux/parallelarray/index.html | 56 ----- .../objets_globaux/stopiteration/index.html | 115 --------- .../objets_globaux/string/quote/index.html | 72 ------ .../index.html" | 183 -------------- .../compr\303\251hensions_de_tableau/index.html" | 209 ---------------- .../expression_closures/index.html" | 85 ------- 37 files changed, 3129 deletions(-) delete mode 100644 "files/fr/web/javascript/nouveaut\303\251s_et_historique_de_javascript/1.1/index.html" delete mode 100644 "files/fr/web/javascript/nouveaut\303\251s_et_historique_de_javascript/1.2/index.html" delete mode 100644 "files/fr/web/javascript/nouveaut\303\251s_et_historique_de_javascript/1.3/index.html" delete mode 100644 "files/fr/web/javascript/nouveaut\303\251s_et_historique_de_javascript/1.4/index.html" delete mode 100644 "files/fr/web/javascript/nouveaut\303\251s_et_historique_de_javascript/1.5/index.html" delete mode 100644 "files/fr/web/javascript/nouveaut\303\251s_et_historique_de_javascript/1.6/index.html" delete mode 100644 "files/fr/web/javascript/nouveaut\303\251s_et_historique_de_javascript/1.7/index.html" delete mode 100644 "files/fr/web/javascript/nouveaut\303\251s_et_historique_de_javascript/1.8.1/index.html" delete mode 100644 "files/fr/web/javascript/nouveaut\303\251s_et_historique_de_javascript/1.8.5/index.html" delete mode 100644 "files/fr/web/javascript/nouveaut\303\251s_et_historique_de_javascript/1.8/index.html" delete mode 100644 "files/fr/web/javascript/nouveaut\303\251s_et_historique_de_javascript/index.html" delete mode 100644 "files/fr/web/javascript/nouveaut\303\251s_et_historique_de_javascript/support_ecmascript_2015_par_mozilla/index.html" delete mode 100644 "files/fr/web/javascript/nouveaut\303\251s_et_historique_de_javascript/support_ecmascript_5_par_mozilla/index.html" delete mode 100644 files/fr/web/javascript/reference/fonctions/arguments/caller/index.html delete mode 100644 files/fr/web/javascript/reference/instructions/for_each...in/index.html delete mode 100644 files/fr/web/javascript/reference/objets_globaux/array/observe/index.html delete mode 100644 files/fr/web/javascript/reference/objets_globaux/array/unobserve/index.html delete mode 100644 files/fr/web/javascript/reference/objets_globaux/arraybuffer/transfer/index.html delete mode 100644 files/fr/web/javascript/reference/objets_globaux/date/tolocaleformat/index.html delete mode 100644 files/fr/web/javascript/reference/objets_globaux/function/arity/index.html delete mode 100644 files/fr/web/javascript/reference/objets_globaux/function/isgenerator/index.html delete mode 100644 files/fr/web/javascript/reference/objets_globaux/number/tointeger/index.html delete mode 100644 files/fr/web/javascript/reference/objets_globaux/object/count/index.html delete mode 100644 files/fr/web/javascript/reference/objets_globaux/object/eval/index.html delete mode 100644 files/fr/web/javascript/reference/objets_globaux/object/getnotifier/index.html delete mode 100644 files/fr/web/javascript/reference/objets_globaux/object/nosuchmethod/index.html delete mode 100644 files/fr/web/javascript/reference/objets_globaux/object/observe/index.html delete mode 100644 files/fr/web/javascript/reference/objets_globaux/object/parent/index.html delete mode 100644 files/fr/web/javascript/reference/objets_globaux/object/unobserve/index.html delete mode 100644 files/fr/web/javascript/reference/objets_globaux/object/unwatch/index.html delete mode 100644 files/fr/web/javascript/reference/objets_globaux/object/watch/index.html delete mode 100644 files/fr/web/javascript/reference/objets_globaux/parallelarray/index.html delete mode 100644 files/fr/web/javascript/reference/objets_globaux/stopiteration/index.html delete mode 100644 files/fr/web/javascript/reference/objets_globaux/string/quote/index.html delete mode 100644 "files/fr/web/javascript/reference/op\303\251rateurs/compr\303\251hensions_de_g\303\251n\303\251rateur/index.html" delete mode 100644 "files/fr/web/javascript/reference/op\303\251rateurs/compr\303\251hensions_de_tableau/index.html" delete mode 100644 "files/fr/web/javascript/reference/op\303\251rateurs/expression_closures/index.html" (limited to 'files/fr/web/javascript') diff --git "a/files/fr/web/javascript/nouveaut\303\251s_et_historique_de_javascript/1.1/index.html" "b/files/fr/web/javascript/nouveaut\303\251s_et_historique_de_javascript/1.1/index.html" deleted file mode 100644 index f5f42abe9d..0000000000 --- "a/files/fr/web/javascript/nouveaut\303\251s_et_historique_de_javascript/1.1/index.html" +++ /dev/null @@ -1,76 +0,0 @@ ---- -title: Nouveautés de JavaScript 1.1 -slug: Web/JavaScript/Nouveautés_et_historique_de_JavaScript/1.1 -tags: - - JavaScript - - Versions -translation_of: Archive/Web/JavaScript/New_in_JavaScript/1.1 ---- -
{{jsSidebar("New_in_JS")}}
- -

Ce document liste les modifications apportées à JavaScript entre Netscape Navigator 2.0 et 3.0. L'ancienne documentation Netscape décrit ceci comme « les fonctionnalités ajoutées après la version 1 ». Netscape Navigator 3.0 est sorti le 19 août 1996. Netscape Navigator 3.0 était la deuxième version majeure du navigateur à supporter JavaScript.

- -

Versions de JavaScript

- -

Netscape Navigator 3.0 a introduit des versions pour le langage JavaScript :

- -
<SCRIPT LANGUAGE="JavaScript">    <!-- JavaScript pour Navigator 2.0. -->
-<SCRIPT LANGUAGE="JavaScript1.1"> <!-- JavaScript pour Navigator 3.0. -->
- -

Nouvelles fonctionnalités de JavaScript 1.1

- -

Nouveaux objets

- - - -

Nouvelles propriétés

- - - -

Nouvelles méthodes

- - - -

Nouveaux opérateurs

- - - -

Autres fonctionnalités apparues

- - - -

Fonctionnalités modifiées avec JavaScript 1.1

- - - -

 

diff --git "a/files/fr/web/javascript/nouveaut\303\251s_et_historique_de_javascript/1.2/index.html" "b/files/fr/web/javascript/nouveaut\303\251s_et_historique_de_javascript/1.2/index.html" deleted file mode 100644 index c5d42ee62b..0000000000 --- "a/files/fr/web/javascript/nouveaut\303\251s_et_historique_de_javascript/1.2/index.html" +++ /dev/null @@ -1,92 +0,0 @@ ---- -title: Nouveautés de JavaScript 1.2 -slug: Web/JavaScript/Nouveautés_et_historique_de_JavaScript/1.2 -tags: - - JavaScript - - Versions -translation_of: Archive/Web/JavaScript/New_in_JavaScript/1.2 ---- -
{{jsSidebar("New_in_JS")}}
- -

Ce document liste les modifications apportées à JavaScript entre Netscape Navigator 3.0 et Netscape Navigator 4.0. L'ancienne documentation de Netscape peut être consultée sur archive.org. Netscape Navigator 4.0 est sorti le 11 juin 1997. Netscape Navigator 4.0 était la troisième version majeure du navigateur à supporter JavaScript.

- -

Versions de JavaScript

- -

Netscape Navigator 4.0 permet d'exécuter les versions de JavaScript inférieures ou égales à 1.2. On notera que Netscape Navigator 3.0, ainsi que les versions antérieures, ignoraient les scripts dont l'attribut LANGUAGE correspondait à "JavaScript1.2" ou à une autre version ultérieure.

- -
<SCRIPT LANGUAGE="JavaScript1.1"> <!-- JavaScript pour Navigator 3.0. -->
-<SCRIPT LANGUAGE="JavaScript1.2"> <!-- JavaScript pour Navigator 4.0. -->
- -

Nouvelles fonctionnalités de JavaScript 1.2

- -

Nouveaux objets

- - - -

Nouvelles propriétés

- - - -

Nouvelles méthodes

- - - -

Nouveaux opérateurs

- - - -

Nouvelles instructions

- - - -

Nouvelles fonctionnalités supplémentaires

- - - -

Les fonctionnalités modifiées avec JavaScript 1.2

- - diff --git "a/files/fr/web/javascript/nouveaut\303\251s_et_historique_de_javascript/1.3/index.html" "b/files/fr/web/javascript/nouveaut\303\251s_et_historique_de_javascript/1.3/index.html" deleted file mode 100644 index 19bb50046e..0000000000 --- "a/files/fr/web/javascript/nouveaut\303\251s_et_historique_de_javascript/1.3/index.html" +++ /dev/null @@ -1,141 +0,0 @@ ---- -title: Nouveautés de JavaScript 1.3 -slug: Web/JavaScript/Nouveautés_et_historique_de_JavaScript/1.3 -tags: - - JavaScript - - Versions -translation_of: Archive/Web/JavaScript/New_in_JavaScript/1.3 ---- -
{{jsSidebar("New_in_JS")}}
- -

Le document qui suit est un journal des modifications concernant JavaScript entre les versions de Netscape Navigator 4.0 et 4.5. L'ancienne documentation de Netscape peut être consultée sur archive.org. Netscape Navigator 4.5 est sorti le 19 octobre 1998.

- -

Le changement le plus important concernant JavaScript 1.3 fut la conformité avec ECMA-262 et Unicode grâce au retrait des incohérences entre JavaScript 1.2 et le nouveau standard ECMA (publié en juin 1997). Certaines fonctionnalités supplémentaires de la version 1.2, non définies par ECMA-262, furent conservées dans le langage JavaScript (voir ci-après la liste des différences).

- -

Versions de JavaScript

- -

Netscape Communicator et Navigator 4.06 et 4.5 exécutent les versions de JavaScript inférieures ou égales à 1.3. Les versions de Communicator et Navigator 4.0-4.05 et inférieures ignoraient les scripts dont l'attribut LANGUAGE avait la valeur "JavaScript1.3" ou supérieur.

- -
<SCRIPT LANGUAGE="JavaScript1.2"> <!-- JavaScript pour Navigator 4.0. -->
-<SCRIPT LANGUAGE="JavaScript1.3"> <!-- JavaScript pour Navigator 4.5. -->
- -

Nouvelles fonctionnalités de JavaScript 1.3

- -

Nouveaux objets globaux

- - - -

Nouvelles méthodes

- - - -

Nouvelles fonctionnalités supplémentaires

- - - -

Les fonctionnalités modifiées avec JavaScript 1.3

- - - -

Les fonctionnalités de JavaScript 1.3 hors d'ECMA-262

- -

Les listes qui suivent comparent la version d'ECMA-262 avant juin 1998 et JavaScript 1.3. Les fonctionnalités qui suivent ne faisaient pas parties du standard mais furent implémentées avec JavaScript 1.3.

- -

Les opérateurs et mots-clés

- - - -

Les instructions

- - - -

Les objets natifs

- - - -

Les méthodes d'objets natifs

- - diff --git "a/files/fr/web/javascript/nouveaut\303\251s_et_historique_de_javascript/1.4/index.html" "b/files/fr/web/javascript/nouveaut\303\251s_et_historique_de_javascript/1.4/index.html" deleted file mode 100644 index 990ecbe991..0000000000 --- "a/files/fr/web/javascript/nouveaut\303\251s_et_historique_de_javascript/1.4/index.html" +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: Nouveautés de JavaScript 1.4 -slug: Web/JavaScript/Nouveautés_et_historique_de_JavaScript/1.4 -tags: - - JavaScript - - Versions -translation_of: Archive/Web/JavaScript/New_in_JavaScript/1.4 ---- -
{{jsSidebar("New_in_JS")}}
- -

Ce document liste les modifications apportées avec JavaScript 1.4 qui fut uniquement utilisé côté serveur pour Nescape, il fut sorti en 1999. L'ancienne documentation pour Netscape peut être trouvée sur archive.org.

- -

Nouvelles fonctionnalités de JavaScript 1.4

- - - -

Les fonctionnalités modifiées avec JavaScript 1.4

- - diff --git "a/files/fr/web/javascript/nouveaut\303\251s_et_historique_de_javascript/1.5/index.html" "b/files/fr/web/javascript/nouveaut\303\251s_et_historique_de_javascript/1.5/index.html" deleted file mode 100644 index 6b506a0ba6..0000000000 --- "a/files/fr/web/javascript/nouveaut\303\251s_et_historique_de_javascript/1.5/index.html" +++ /dev/null @@ -1,40 +0,0 @@ ---- -title: Nouveautés de JavaScript 1.5 -slug: Web/JavaScript/Nouveautés_et_historique_de_JavaScript/1.5 -tags: - - JavaScript - - Versions -translation_of: Archive/Web/JavaScript/New_in_JavaScript/1.5 ---- -
{{jsSidebar("New_in_JS")}}
- -
Ce document liste les modifications apportées avec JavaScript 1.5. Cette version était incluse dans Netscape Navigator 6.0 qui est sorti le 14 novembre 2000. Cette version de JavaScript fut également utilisée dans les versions suivantes de Netscape Navigator et dans Firefox 1.0. JavaScript 1.5 peut être comparé à JScript 5.5 et Internet Explorer 5.5, qui fut sorti en juillet 2000. Le standard ECMA correspondant est la troisième édition d'ECMA-262 (décembre 1999).
- -

Nouvelles fonctionnalités de JavaScript 1.5

- - - -

Fonctionnalités modifiées avec JavaScript 1.5

- - diff --git "a/files/fr/web/javascript/nouveaut\303\251s_et_historique_de_javascript/1.6/index.html" "b/files/fr/web/javascript/nouveaut\303\251s_et_historique_de_javascript/1.6/index.html" deleted file mode 100644 index c45e80840a..0000000000 --- "a/files/fr/web/javascript/nouveaut\303\251s_et_historique_de_javascript/1.6/index.html" +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: Nouveautés de JavaScript 1.6 -slug: Web/JavaScript/Nouveautés_et_historique_de_JavaScript/1.6 -tags: - - JavaScript - - Versions -translation_of: Archive/Web/JavaScript/New_in_JavaScript/1.6 ---- -
{{jsSidebar("New_in_JS")}}
- -

Ce document liste les modifications apportées avec JavaScript 1.6. Cette version fut incluse avec Firefox 1.5 (Gecko 1.8) sorti en novembre 2005. Le standard ECMA correspondant est la troisième édition d'ECMA-262 et ECMAScript for XML (E4X) définit des fonctionnalités additionnelles. Plusieurs fonctionnalités furent introduites avec cette version : E4X, des nouvelles méthodes pour Array et les méthodes génériques pour Array et String.

- -

Nouvelles fonctionnalités de JavaScript 1.6

- - - -

Fonctionnalités modifiées avec JavaScript 1.6

- - diff --git "a/files/fr/web/javascript/nouveaut\303\251s_et_historique_de_javascript/1.7/index.html" "b/files/fr/web/javascript/nouveaut\303\251s_et_historique_de_javascript/1.7/index.html" deleted file mode 100644 index b88fa1606e..0000000000 --- "a/files/fr/web/javascript/nouveaut\303\251s_et_historique_de_javascript/1.7/index.html" +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: Nouveautés de JavaScript 1.7 -slug: Web/JavaScript/Nouveautés_et_historique_de_JavaScript/1.7 -tags: - - JavaScript - - Versions -translation_of: Archive/Web/JavaScript/New_in_JavaScript/1.7 ---- -
{{jsSidebar("New_in_JS")}}
- -

Cette page présente le journal des modifications (changelog) pour JavaScript 1.7. Cette version de Javascript a été incluse dans Firefox 2 (Octobre 2006).

- -

JavaScript 1.7 est une mise à jour du langage qui introduit plusieurs nouvelles fonctionnalités, en particulier : les générateurs et les itérateurs, la définition de tableaux par compréhension, les expressions let et l'assignation par décomposition.

- -

Utilisation de JavaScript 1.7

- -

Afin de pouvoir utiliser certaines des nouvelles fonctionnalités de JavaScript 1.7, il est nécessaire de spécifier qu'on utilise JavaScript 1.7. Dans du code HTML ou XUL, on utilisera :

- -
<script type="application/javascript;version=1.7"></script>
-
- -

Si vous utilisez le shell JavaScript, vous devrez définir la version utilisée à l'aide de l'argument en ligne de commande -version 170 ou de la fonction version() :

- -
version(170);
-
- -

Pour utiliser les fonctionnalités nécessitant l'utilisation des nouveaux mots-clés « yield » et « let », il est obligatoire de spécifier l'utilisation de la version 1.7, les scripts existants pouvant utiliser ces mots-clés comme noms de variables ou de fonctions. Les fonctionnalités n'utilisant pas de nouveaux mots-clés (assignations déstructurantes et définitions de tableaux par compréhension) peuvent être utilisées sans préciser la version de JavaScript.

- -

Nouvelles fonctionnalités dans JavaScript 1.7

- -

Les fonctionnalités suivantes ont été ajoutées à JavaScript 1.7 et ne faisaient partie d'aucun standard ECMA-262 lors de leur introduction. Dans les versions plus récentes de Firefox, leur implémentation a été mise à jour de façon à respecter la sémantique de ECMAScript Edition 6. Veuillez consulter les pages de référence pour plus d'informations sur ces évolutions.

- - diff --git "a/files/fr/web/javascript/nouveaut\303\251s_et_historique_de_javascript/1.8.1/index.html" "b/files/fr/web/javascript/nouveaut\303\251s_et_historique_de_javascript/1.8.1/index.html" deleted file mode 100644 index 3b2a3b16a0..0000000000 --- "a/files/fr/web/javascript/nouveaut\303\251s_et_historique_de_javascript/1.8.1/index.html" +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: Nouveautés de JavaScript 1.8.1 -slug: Web/JavaScript/Nouveautés_et_historique_de_JavaScript/1.8.1 -tags: - - Firefox 3.5 - - JavaScript - - Versions -translation_of: Archive/Web/JavaScript/New_in_JavaScript/1.8.1 ---- -
{{jsSidebar("New_in_JS")}}
- -

Cette page présente le journal des modifications (changelog) pour JavaScript 1.8.5. Cette version de Javascript a été introduite dans Firefox 3.5.

- -

JavaScript 1.8.1 est une version de mise à jour mineure de JavaScript du point de vue de la syntaxe. Le principal changement lié à cette version est l'ajout du compilateur juste-à-temps Tracemonkey (en anglais), qui améliore les performances.

- -

Nouvelles fonctionnalités dans JavaScript 1.8.1

- - - -

Changements apportés par JavaScript 1.8.1

- - diff --git "a/files/fr/web/javascript/nouveaut\303\251s_et_historique_de_javascript/1.8.5/index.html" "b/files/fr/web/javascript/nouveaut\303\251s_et_historique_de_javascript/1.8.5/index.html" deleted file mode 100644 index 1e03d6f2a0..0000000000 --- "a/files/fr/web/javascript/nouveaut\303\251s_et_historique_de_javascript/1.8.5/index.html" +++ /dev/null @@ -1,128 +0,0 @@ ---- -title: Nouveautés de JavaScript 1.8.5 -slug: Web/JavaScript/Nouveautés_et_historique_de_JavaScript/1.8.5 -tags: - - ECMAScript 5 - - Firefox 4 - - JavaScript - - JavaScript 1.8.5 - - Versions -translation_of: Archive/Web/JavaScript/New_in_JavaScript/1.8.5 ---- -
{{jsSidebar("New_in_JS")}}
- -

Cette page présente le journal des modifications (changelog) pour JavaScript 1.8.5. Cette version de Javascript a été introduite dans Firefox 4.

- -

Nouvelles fonctionnalités dans JavaScript 1.8.5

- -

Nouvelles fonctions

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FonctionDescription
{{jsxref("Object.create")}}Crée un nouvel objet avec l'objet prototype et les propriétés fournies. {{bug("492840")}}
{{jsxref("Object.defineProperty")}}Ajoute une propriété nommée et avec un descripteur à un objet.
{{jsxref("Object.defineProperties")}}Ajoute des propriétés nommées et avec descripteurs à un object.
{{jsxref("Object.getOwnPropertyDescriptor")}}Renvoie un descripteur de propriété d'une propriété nommée ou d'un objet. {{bug("505587")}}
{{jsxref("Object.keys")}}Renvoie un tableau avec toutes les propriétés énumérables d'un objet. {{bug("307791")}}
{{jsxref("Object.getOwnPropertyNames")}}Renvoie un tableau avec toutes les propriétés (énumérables et non énumérables) d'un objet. {{bug("518663")}}
{{jsxref("Object.preventExtensions")}}Empêche l'ajout de nouvelles propriétés à un objet. {{bug("492849")}}
{{jsxref("Object.isExtensible")}}Détermine s'il est possible d'étendre un objet. {{bug("492849")}}
{{jsxref("Object.seal")}}Empêche la suppression des propriétés d'un objet par un autre code. {{bug("492845")}}
{{jsxref("Object.isSealed")}}Détermine si un objet est scellé. {{bug("492845")}}
{{jsxref("Object.freeze")}}« Gèle » un objet : un code externe ne peut pas supprimer ou changer des propriétés {{bug("492844")}}
{{jsxref("Object.isFrozen")}}Détermine si un objet a été gelé. {{bug("492844")}}
{{jsxref("Array.isArray")}}Vérifie si une variable est un tableau.  {{bug("510537")}}
{{jsxref("Date.prototype.toJSON")}}Renvoie une chaîne de caractères JSON depuis un objet Date.
{{jsxref("Function.prototype.bind")}}Crée une nouvelle fonction qui, lorsqu'elle est appelée, appelle elle-même cette fonction dans le contexte fourni (avec une séquence d'arguments) {{bug("429507")}}
- -

Nouvelles fonctionnalités ECMAScript5

- - - -

Avancées de standardisation

- -

Les diverses syntaxes non-standard utilisées pour définir les getters et les setters ont été retirées. La syntaxe définie dans ECMAScript 5 n'a pas été changée. Ces syntaxes étaient assez obscures et rarement utilisées : si vous pensez être concerné, veuillez lire cet article de blog (anglais) pour plus de détails.

- -

Nouveaux objets

- - - - - - - - - - - - - - -
ObjetDescription
Ancienne API ProxyOffre un support pour la création de proxies d'Object et Function permettant la méta-programmation en JavaScript.
- -

Changements apportés par JavaScript 1.8.5

- - diff --git "a/files/fr/web/javascript/nouveaut\303\251s_et_historique_de_javascript/1.8/index.html" "b/files/fr/web/javascript/nouveaut\303\251s_et_historique_de_javascript/1.8/index.html" deleted file mode 100644 index b9574c34ab..0000000000 --- "a/files/fr/web/javascript/nouveaut\303\251s_et_historique_de_javascript/1.8/index.html" +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: Nouveautés de JavaScript 1.8 -slug: Web/JavaScript/Nouveautés_et_historique_de_JavaScript/1.8 -tags: - - JavaScript - - Versions -translation_of: Archive/Web/JavaScript/New_in_JavaScript/1.8 ---- -
{{jsSidebar("New_in_JS")}}
- -

Cette page présente le journal des modifications (changelog) pour JavaScript 1.8. Cette version de Javascript a été introduite dans Firefox 3 avec Gecko 1.9. Consultez le {{ Bug(380236) }} pour suivre les progrès du développement de JavaScript 1.8.

- -

Utilisation de JavaScript 1.8

- -

Afin d'utiliser certaines des nouvelles fonctionnalités de JavaScript 1.8, utilisez :

- -
<script type="application/javascript;version=1.8">
-  ... votre code ...
-</script>
-
- -

Une autre méthode (non recommandée) consiste à utiliser l'attribut déprécié language de la balise <script> avec la valeur « JavaScript1.8 ».

- -

Lorsque vous utilisez le shell JavaScript, des composants XPCOM JavaScript ou des éléments <script> XUL, la dernière version de JavaScript (JavaScript 1.8 dans Mozilla 1.9) est utilisée automatiquement (cf. {{ Bug(381031) }}, {{ Bug(385159) }}).

- -

Pour utiliser les fonctionnalités nécessitant l'utilisation des nouveaux mots-clés « yield » et « let », la version 1.7 ou supérieure doit être spécifiée, car du code existant peut utiliser ces mots-clés comme noms de variables ou de fonctions. Les fonctionnalités qui n'utilisent pas de nouveaux mots-clés (comme les expressions génératrices) peuvent être utilisés sans préciser la version de JavaScript.

- -

Nouvelles fonctionnalités dans JavaScript 1.8

- - - -

Changements apportés par JavaScript 1.8

- -

Affectation par décomposition dans les boucles for...in

- -

L'une des modifications apportées par JavaScript 1.8 est la correction d'un bug lié à l'{{ jsxref('Opérateurs/Affecter_par_décomposition', 'Affection par décomposition de tableaux') }}, introduite avec JavaScript 1.7. Il était auparavant possible de décomposer les clés et valeurs d'un tableau avec la syntaxe for ( var [clé, valeur] in tableau ). Cela rendait cependant impossible la décomposition des valeurs d'un tableau de tableaux. Ce bug a été résolu ({{ Bug("366941") }}), et la syntaxe a utiliser est devenue la suivante : for ( var [clé, valeur] in Iterator(tableau)).

diff --git "a/files/fr/web/javascript/nouveaut\303\251s_et_historique_de_javascript/index.html" "b/files/fr/web/javascript/nouveaut\303\251s_et_historique_de_javascript/index.html" deleted file mode 100644 index c6140c5323..0000000000 --- "a/files/fr/web/javascript/nouveaut\303\251s_et_historique_de_javascript/index.html" +++ /dev/null @@ -1,72 +0,0 @@ ---- -title: Nouveautés et historique de JavaScript -slug: Web/JavaScript/Nouveautés_et_historique_de_JavaScript -tags: - - ECMAScript - - JavaScript - - Versions -translation_of: Archive/Web/JavaScript/New_in_JavaScript ---- -
{{jsSidebar("New_in_JS")}}
- -

Ce chapitre contient des informations sur l'historique des versions de JavaScript et sur le statut de l'implémentation des applications basées sur SpiderMonkey telles que Firefox.

- -

Versions d'ECMAScript

- -
-
Ressources sur le language
-
Plus d'informations sur les standards ECMAScript sur lesquels est basé JavaScript.
-
Support d'ECMAScript 5
-
Le statut d'implémentation relatif à l'édition 5.1 du standard ECMA-262 pour les moteurs et les produits Mozilla.
-
Support d'ECMAScript 2015
-
Le statut d'implémentation relatif à l'édition 6 du standard ECMA-262 (ES2015/ES6) pour les moteurs et les produits Mozilla.
-
Support d'ECMAScript Next
-
Le statut d'implémentation relatif aux éditions à venir du standard ECMA-262 qui suit désormais un rythme annuel (ES2016/ES2017/ES2018/etc.) pour les moteurs et les produits Mozilla.
-
- -

Notes des versions JavaScript

- -
-
Notes des versions de Firefox pour les fonctionnalités liées à JavaScript
-
Ces notes de versions décrivent les fonctionnalités JavaScript implémentées à partir de Firefox 5.
-
- -

Versions de JavaScript

- -

Notion dépréciée ({{deprecated_inline()}}). Le versionnement de JavaScript et le ciblage de la version pour les fonctionnalités est spécifique à Mozilla et est en cours de suppression. Firefox 4 fut la dernière version de Firefox qui fait référence à une version de JavaScript (en l'occurence la version 1.8.5). Avec les standards ECMA, les fonctionnalités de JavaScript sont désormais mentionnées avec l'édition ECMA-262 qui comporte leur définition initiale, par exemple ECMAScript 2015 (ES2015/ES6).

- -

JavaScript fut publié avec la version 1.0 en mars 1996 dans les logiciels Netscape Navigator 2.0 et Internet Explorer 2.0.

- -
-
JavaScript 1.1
-
La version livrée avec Netscape Navigator 3.0. Sortie le 19 août 1996.
-
JavaScript 1.2
-
La version livrée avec Netscape Navigator 4.0-4.05. Sortie le 11 juin 1997.
-
JavaScript 1.3
-
La version livrée avec Netscape Navigator 4.06-4.7x. Sortie le 19 octobre 1998.
- Travail de standardisation pour la mise aux normes par rapport aux deux premières édition d'ECMA-262.
-
JavaScript 1.4
-
La version livrée pour le JavaScript côté serveur de Netscape. Sortie en 1999.
-
JavaScript 1.5
-
La version livrée avec Netscape Navigator 6.0 et Firefox 1.0. Sortie le 14 novembre 2000.
- Travail de standardisation pour la mise aux normes par rapport à la troisième édition d'ECMA-262.
-
JavaScript 1.6
-
Version livrée avec Firefox 1.5. Sortie en novembre 2005.
- Inclue ECMAScript pour XML (E4X), de nouvelles méthodes pour Array et les méthodes génériques pour String et Array.
-
JavaScript 1.7
-
Version livrée avec Firefox 2. Sortie en octobre 2006.
- Inclue les générateurs et itérateurs historiques (différents de ceux définis par ECMAScript 2015 (ES6)), les compréhensions de tableaux, les expressions let et l'affectation par décomposition.
-
JavaScript 1.8
-
Version livrée avec Firefox 3. Sortie en juin 2008.
- Inclue les expressions pour les fermetures, les expressions de générateurs (ancienne version, différente de celles d'ECMAScript 2015 (ES6)) et Array.reduce()
-
JavaScript 1.8.1
-
Version livrée avec Firefox 3.5. Sortie le 30 juin 2009.
- Inclue le compilateur JIT TraceMonkey et le support du JSON natif.
-
JavaScript 1.8.2
-
Version livrée avec Firefox 3.6. Sortie le 22 juin 2009.
- Inclue uniquement quelques changements mineurs.
-
JavaScript 1.8.5
-
Version livrée avec Firefox 4. Sortie le 27 juillet 2010.
- Inclue de nombreuses fonctionnalités pour la mise aux normes par rapport à la cinquième édition d'ECMA-262 Edition 5.
- Cette version est la dernière version de JavaScript utilisant cette méthode dépréciée pour la numérotation.
-
diff --git "a/files/fr/web/javascript/nouveaut\303\251s_et_historique_de_javascript/support_ecmascript_2015_par_mozilla/index.html" "b/files/fr/web/javascript/nouveaut\303\251s_et_historique_de_javascript/support_ecmascript_2015_par_mozilla/index.html" deleted file mode 100644 index cbfddccb7a..0000000000 --- "a/files/fr/web/javascript/nouveaut\303\251s_et_historique_de_javascript/support_ecmascript_2015_par_mozilla/index.html" +++ /dev/null @@ -1,273 +0,0 @@ ---- -title: Support d'ECMAScript 6 par Mozilla -slug: >- - Web/JavaScript/Nouveautés_et_historique_de_JavaScript/Support_ECMAScript_2015_par_Mozilla -tags: - - ECMAScript 2015 - - Firefox - - JavaScript -translation_of: Archive/Web/JavaScript/New_in_JavaScript/ECMAScript_2015_support_in_Mozilla ---- -
{{jsSidebar("New_in_JS")}}
- -

ECMAScript 2015 (sixième édition) est la version actuelle pour le langage ECMAScript. C'est le standard qui définit l'implémentation de JavaScript, notamment pour SpiderMonkey, le moteur utilisé par Firefox et les autres applications Mozilla.

- -

Cette version est appelée avec le nom de code « ES.next », « Harmony » ou « ECMAScript 6 ». Les brouillons de spécification (aussi appelés drafts) se trouvent sur le wiki officiel d'ECMA. Le premier draft basé sur ECMAScript 5.1, a été publié le 12 juillet 2011 sous le nom « ES.next ». À partir d'août 2014, ECMAScript 2015 n'a plus accepté de nouvelles fonctionnalités et a été stabilisé. Il a été officiellement approuvé et fut publié le 17 juin 2015 par l'assemblée générale ECMA. Ce standard apparaîtra également sur le standard international ISO/IEC 16262:2016.

- -

Une version PDF et une version HTML du standard sont disponibles et peuvent être librement téléchargéees sur ecma-international.org.

- -

La liste de diffusion es-discuss permet de discuter des standards ECMAScript.

- -

Bibliothèque standard

- -

Ajouts à l'objet Array

- - - -

Les objets Map et Set et leurs équivalents avec références faibles

- - - -

Nouvelles fonctions pour l'objet Math

- - - -

Ajouts à l'objet Number

- - - -

Ajouts à l'objet Object

- - - -

Ajouts à l'objet Date

- - - -

Nouvel objet Promise

- - - -

Nouvel objet Proxy

- - - -

Nouvel objet Reflect

- - - -

Ajouts à l'objet RegExp

- - - -

Ajouts à l'objet String

- - - -

Nouvel objet Symbol

- - - -

Tableaux typés

- -

Les tableaux typés sont désormais spécifiés par ECMAScript 2015, ils ne suivent donc plus leur propre spécification.

- - - -

Expressions et opérateurs

- - - -

Instructions

- - - -

Fonctions

- - - -

Autres fonctionnalités

- - - -

Voir aussi

- - diff --git "a/files/fr/web/javascript/nouveaut\303\251s_et_historique_de_javascript/support_ecmascript_5_par_mozilla/index.html" "b/files/fr/web/javascript/nouveaut\303\251s_et_historique_de_javascript/support_ecmascript_5_par_mozilla/index.html" deleted file mode 100644 index 03ba972133..0000000000 --- "a/files/fr/web/javascript/nouveaut\303\251s_et_historique_de_javascript/support_ecmascript_5_par_mozilla/index.html" +++ /dev/null @@ -1,46 +0,0 @@ ---- -title: Support d'ECMAScript 5 par Mozilla -slug: >- - Web/JavaScript/Nouveautés_et_historique_de_JavaScript/Support_ECMAScript_5_par_Mozilla -tags: - - ECMAScript 5 - - JavaScript - - Versions -translation_of: Archive/Web/JavaScript/New_in_JavaScript/ECMAScript_5_support_in_Mozilla ---- -
{{jsSidebar("New_in_JS")}}
- -

ECMAScript 5.1 est une version publiée du standard sur lequel est basé JavaScript. Cette version a été approuvée en juin 2011.

- -

L'environnement d'exécution JavaScript utilisé dans les dernières versions des projets Mozilla (Firefox et Thunderbird par exemple) supporte entièrement les fonctionnalités d'ECMAScript 5.1. Cet article traite des différentes fonctionnalités d'ECMAScript 5.1 et de leur support par les différentes versions de l'environnement JavaScript de Mozilla.

- -

Fonctionnalités supportées

- -

Ajoutées dans JavaScript 1.8.5 (Gecko 2, Firefox 4 et ultérieures)

- -

Firefox 4 supporte entièrement ECMAScript 5, y compris les méthodes Object.* et le mode strict. Voir la page Nouveautés de JavaScript 1.8.5 pour plus d'informations.

- -

Ajoutées dans JavaScript 1.8.1 (Gecko 1.9.1, Firefox 3.5)

- - - -

Des  améliorations apportées par ECMAScript 5 ont permis de corriger l'algorithme d'analyse (parsing) pour ne plus évaluer du code XHTML comme du code JavaScript dans certains cas.

- -

Ajoutées dans JavaScript 1.6 (Gecko 1.8, Firefox 1.5)

- -

De nouvelles méthodes Array ont été introduites pour faciliter la manipulation des tableaux. Ces méthodes faisaient partie de JavaScript depuis JavaScript 1.6. Elles ont été standardisées avec ECMAScript 5.

- -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/fonctions/arguments/caller/index.html b/files/fr/web/javascript/reference/fonctions/arguments/caller/index.html deleted file mode 100644 index 0a6660cab2..0000000000 --- a/files/fr/web/javascript/reference/fonctions/arguments/caller/index.html +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: caller -slug: Web/JavaScript/Reference/Fonctions/arguments/caller -tags: - - Functions - - JavaScript - - Obsolete - - Propriété - - Reference - - arguments -translation_of: Archive/Web/JavaScript/arguments.caller ---- -
{{jsSidebar("Functions")}}{{obsolete_header}}
- -
La propriété obsolète arguments.caller était utilisée afin de fournir la fonction ayant appelée la fonction en cours d'exécution. Cette propriété a été retirée et ne fonctione plus.
- -

Description

- -

Cette propriété n'est plus disponible. Vous pouvez en revanche utiliser {{jsxref("Function.caller")}}.

- -
function quiAppelle() {
-   if (quiAppelle.caller == null)
-      console.log('Appel depuis la portée globale.');
-   else
-      console.log(quiAppelle.caller + ' a appelé !');
-}
- -

Exemples

- -

Le code suivant pouvait être utilisé pour connaître la valeur de arguments.caller dans une fonction. La propriété étant obsolète, le code ne fonctionne plus.

- -
function quiAppelle() {
-   if (arguments.caller == null)
-      console.log('Appel depuis la portée globale.');
-   else
-      console.log(arguments.caller + ' a appelé !');
-}
-
- -

Spécifications

- -

Cette propriété ne fait partie d'aucun standard. Elle fut implémentée avec JavaScript 1.1 et retirée avec le {{bug(7224)}} en raisons d'éventuelles vulnérabilités.

- -

Compatibilité des navigateurs

- - - -

{{Compat("javascript.functions.arguments.caller")}}

- -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/instructions/for_each...in/index.html b/files/fr/web/javascript/reference/instructions/for_each...in/index.html deleted file mode 100644 index 103651bc31..0000000000 --- a/files/fr/web/javascript/reference/instructions/for_each...in/index.html +++ /dev/null @@ -1,80 +0,0 @@ ---- -title: for each...in -slug: Web/JavaScript/Reference/Instructions/for_each...in -tags: - - Déprécié - - E4X - - Instruction - - JavaScript - - Reference -translation_of: Archive/Web/JavaScript/for_each...in ---- -
{{JsSidebar("Statements")}}{{deprecated_header}}
- -
-

L'instruction for each...in est dépréciée car elle appartient au standard ECMA-357 (E4X). E4X sera désactivé par défaut puis retiré à l'avenir. Il faut désormais utiliser l'instruction {{jsxref("Instructions/for...of","for...of")}}. (Voir {{ bug("791343")}}.)
- Firefox lance désormais des avertissements lorsque des boucles for each...in et cette instruction a été retirée du canal Nightly.
- Veuillez consulter l'article sur cet avertissement pour des indications quant aux solutions de migration.

-
- -

L'instruction for each...in itère une variable donnée sur toutes les propriétés d'un objet. Pour chaque propriété distincte, une instruction spécifique est exécutée.

- -

Syntaxe

- -
for each (variable in objet) {
-  instruction
-}
- -
-
variable
-
Une variable à itérer sur les valeurs des propriétés, elle peut être déclarée avec le mot-clé {{jsxref("Instructions/var","var")}}. Cette variable est locale à la fonction et non à la boucle.
-
- -
-
objet
-
L'objet pour lequel les propriétés sont itérées.
-
- -
-
instruction
-
Une instruction à exécuter pour chaque propriétés. Pour effectuer plusieurs instructions au sein de la boucle, il faut utiliser une instruction de {{jsxref("Instructions/block","bloc","",1)}} ({ ... }) pour regrouper les instructions.
-
- -

Description

- -

L'itération ne s'effectue que sur les propriétés spécifiques, définies par l'utilisateur. Elle ne s'effectuera pas sur les propriétés implicites déjà intégrées comme les méthodes objet telles que la méthode indexOf des chaînes de caractères.

- -

Exemple

- -

Utiliser for each...in

- -

Attention : Ne jamais utiliser cette boucle sur un tableau. Ne l'utiliser que pour les objets. (Voir des détails sur la page de l'instruction {{jsxref("Instructions/for...in")}}).

- -

Le fragment de code parcourt les propriétés d'un objet et en calcule leur somme.

- -
var somme = 0;
-var obj = {prop1: 5, prop2: 13, prop3: 8};
-
-for each (var item in obj) {
-  somme += item;
-}
-
-console.log(somme); // affiche "26", ce qui correspond à 5+13+8
- -

Spécifications

- -

Cette instruction ne fait partie d'aucune spécification ECMA-262. Elle a été implémentée avec JavaScript 1.6 et est dépréciée.

- -

Compatibilité des navigateurs

- - - -

{{Compat("javascript.statements.for_each_in")}}

- -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/objets_globaux/array/observe/index.html b/files/fr/web/javascript/reference/objets_globaux/array/observe/index.html deleted file mode 100644 index ea02585a28..0000000000 --- a/files/fr/web/javascript/reference/objets_globaux/array/observe/index.html +++ /dev/null @@ -1,90 +0,0 @@ ---- -title: Array.observe() -slug: Web/JavaScript/Reference/Objets_globaux/Array/observe -tags: - - Array - - JavaScript - - Méthode - - Obsolete - - Reference -translation_of: Archive/Web/JavaScript/Array.observe ---- -
{{JSRef}} {{obsolete_header}}
- -

La méthode Array.observe() est utilisée afin d'observer les modifications apportées à un tableau de façon asynchrone. Elle fonctionne de la même façon que la méthode {{jsxref("Object.observe()")}} pour les objets. Cette méthode fournit un flux de changements, triés dans l'ordre dans lequel ils se sont produits. Utiliser cette méthode est équivalent à appeler {{jsxref("Object.observe()")}} avec la liste ["add", "update", "delete", "splice"] comme troisième argument. Toutefois, cette API a été dépréciée et retirée des navigateurs. Il est préférable d'utiliser l'objet {{jsxref("Proxy")}}, plus générique, à la place.

- -

Syntaxe

- -
Array.observe(arr, callback)
- -

Paramètres

- -
-
arr
-
Le tableau qu'on souhaite observer.
-
callback
-
La fonction à appeler à chaque fois que des changements sont effectués. Cette fonction est appelée avec l'argument suivant : -
-
changes
-
Un tableau d'objets représentant chacun une modification. Les propriétés de ces objets sont : -
    -
  • name : Le nom de la propriété qui a été modifiée.
  • -
  • object : Le tableau modifié (une fois que la modification a été effectuée).
  • -
  • type : Une chaîne de caractères indiquant le type de modification qui a eu lieu. Elle peut valoir "add" (pour ajout), "update" (pour modification), "delete"(pour suppression) ou "splice" (pour découpage).
  • -
  • oldValue : Propriété présente uniquement lorsque le type vaut "update" ou "delete". La valeur de la propriété est la valeur avant qu'elle ait été modifiée.
  • -
  • index : Propriété présente uniquement lorsque le type vaut "splice". L'index auquel la modification a eu lieu.
  • -
  • removed : Propriété présente uniquement lorsque le type vaut "splice". Le tableau des éléments supprimés.
  • -
  • addedCount : Propriété uniquement présente lorsque le type vaut "splice". Le nombre d'éléments ajoutés.
  • -
-
-
-
-
- -

Description

- -

La fonction callback est appelée à chaque fois qu'un changement est apporté à arr, elle est appelée avec un argument qui est un tableau contenant tous les changements qui se sont produits, dans l'ordre dans lequel ils se sont produits. 

- -
-

Les modifications apportées avec les méthodes d'Array, comme Array.prototype.pop(), seront enregistrées avec le type "splice". Les modifications d'éléments qui ne modifient pas la longueur du tableau sont enregistrés en tant qu'update".

-
- -

Exemples

- -

Enregistrer les différents types de modifications

- -
var arr = ['a', 'b', 'c'];
-
-Array.observe(arr, function(changes) {
-  console.log(changes);
-});
-
-arr[1] = 'B';
-// [{type: 'update', object: <arr>, name: '1', oldValue: 'b'}]
-
-arr[3] = 'd';
-// [{type: 'splice', object: <arr>, index: 3, removed: [], addedCount: 1}]
-
-arr.splice(1, 2, 'beta', 'gamma', 'delta');
-// [{type: 'splice', object: <arr>, index: 1, removed: ['B', 'c'], addedCount: 3}]
-
- -

Spécifications

- -

Proposition de spécification (Strawman proposal) (en anglais).

- -

Compatibilité des navigateurs

- -
- - -

{{Compat("javascript.builtins.Array.observe")}}

-
- -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/objets_globaux/array/unobserve/index.html b/files/fr/web/javascript/reference/objets_globaux/array/unobserve/index.html deleted file mode 100644 index bb32557e28..0000000000 --- a/files/fr/web/javascript/reference/objets_globaux/array/unobserve/index.html +++ /dev/null @@ -1,89 +0,0 @@ ---- -title: Array.unobserve() -slug: Web/JavaScript/Reference/Objets_globaux/Array/unobserve -tags: - - Array - - JavaScript - - Méthode - - Obsolete - - Reference -translation_of: Archive/Web/JavaScript/Array.unobserve ---- -
{{JSRef}} {{obsolete_header}}
- -

La méthode Array.unobserve() est utilisée pour retirer les observateurs placés grâce à {{jsxref("Array.observe()")}}. Cette API a été dépréciée et retirée des navigateurs. À la place, il est préférable d'utiliser l'objet {{jsxref("Proxy")}}, plus générique.

- -

Syntaxe

- -
Array.unobserve(arr, callback)
- -

Paramètres

- -
-
arr
-
Le tableau qu'on souhaite arrêter d'observer.
-
callback
-
La référence à l'observateur dont on souhaite qu'il arrête d'être appelé à chaque changement apporté au tableau arr.
-
- -

Description

- -

Array.unobserve() doit être appelé après {{jsxref("Array.observe()")}} afin de retirer un observateur du tableau.

- -

La fonction de rappel (callback) utilisée doit être une référence à une fonction et non une fonction anonyme car c'est cette référence qui sera utilisée pour retrouver l'observateur. Ça ne sert à rien d'appeler Array.unobserve() avec une fonction anonyme comme paramètre de callback, cela ne retirera aucun observateur.

- -

Exemples

- -

Arrêter d'observer un tableau

- -
var arr = [1, 2, 3];
-
-var observateur = function(changements) {
-  console.log(changements);
-}
-
-Array.observe(arr, observateur);
-​
-arr.push(4);
-// [{type: "splice", object: <arr>, index: 3, removed:[], addedCount: 1}]
-
-Array.unobserve(arr, observateur);
-
-arr.pop();
-// Le callback n'a pas été appelé
- -

Utiliser une fonction anonyme

- -
var personnes = ['Khalid', 'Ahmed', 'Mohammed'];
-
-Array.observe(personnes, function (changements) {
-  console.log(changements);
-});
-
-personnes.shift();
-// [{type: "splice", object: <arr>, index: 0, removed: [ "Khalid" ], addedCount: 0 }]
-
-Array.unobserve(personnes, function (changements) {
-  console.log(changements);
-});
-
-personnes.push('Abdullah');
-// [{type: "splice", object: <arr>, index: 2, removed: [], addedCount: 1 }]
-// Le callback est toujours appelé
-
- -

Compatibilité des navigateurs

- -
- - -

{{Compat("javascript.builtins.Array.unobserve")}}

-
- -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/objets_globaux/arraybuffer/transfer/index.html b/files/fr/web/javascript/reference/objets_globaux/arraybuffer/transfer/index.html deleted file mode 100644 index 0d13e6aa38..0000000000 --- a/files/fr/web/javascript/reference/objets_globaux/arraybuffer/transfer/index.html +++ /dev/null @@ -1,100 +0,0 @@ ---- -title: ArrayBuffer.transfer() -slug: Web/JavaScript/Reference/Objets_globaux/ArrayBuffer/transfer -tags: - - ArrayBuffer - - Experimental - - JavaScript - - Méthode - - Reference - - TypedArrays - - polyfill -translation_of: Archive/Web/JavaScript/ArrayBuffer.transfer ---- -
{{JSRef}}{{SeeCompatTable}}
- -

La méthode statique ArrayBuffer.transfer() renvoie un nouvel objet ArrayBuffer dont le contenu a été transféré depuis les données d'ancienBuffer et qui est soit tronqué soit complété avec des zéros pour que la longueur du nouvel objet soit égale à nouvelleLongueur. Si nouvelleLongueur vaut undefined, on utilisera la propriété byteLength de l'ancienBuffer. Cette opération fait que ancienBuffer sera dans un état détaché.

- -

Syntaxe

- -
ArrayBuffer.transfer(ancienBuffer [, nouvelleLongueur]);
- -

Paramètres

- -
-
ancienBuffer
-
Un objet {{jsxref("ArrayBuffer")}} à partir duquel on souhaite transférer des données.
-
nouvelleLongueur
-
La longueur, exprimée en octets, du nouvel objet ArrayBuffer.
-
- -

Valeur de retour

- -

Un nouvel objet ArrayBuffer.

- -

Description

- -

La méthode ArrayBuffer.transfer() permet d'agrandir et de détacher des objets ArrayBuffer. Le fait de pouvoir agrandir un ArrayBuffer sans effectuer de copie permet d'être beaucoup plus efficace sur les grands buffers (comme pour realloc). Le fait de pouvoir détacher un ArrayBuffer permet au développeur d'avoir un contrôle explicite sur la mémoire sous-jacente et sa libération. Cela permet d'éviter d'avoir à libérer toutes les références et d'attendre le travail du ramasse-miettes.

- -

Exemples

- -
var buf1 = new ArrayBuffer(40);
-new Int32Array(buf1)[0] = 42;
-
-var buf2 = ArrayBuffer.transfer(buf1, 80);
-buf1.byteLength; // 0 (attention, avec la prothèse, la valeur sera toujours 40)
-buf2.byteLength; // 80
-new Int32Array(buf2)[0]; // 42
-
-var buf3 = ArrayBuffer.transfer(buf2, 0);
-buf2.byteLength; // 0 (attention, avec la prothèse, la valeur sera toujours 80)
-buf3.byteLength; // 0
-
- -

Prothèse d'émulation (polyfill)

- -

Ce fragment de code permet d'obtenir la plupart des fonctionnalités de transfer() dans un environnement qui ne le prend pas en charge nativement. Attention, cela ne correspond pas exactement à l'API mais permet de transférer des données d'un ArrayBuffer vers un autre.

- -
if (!ArrayBuffer.transfer) {
-    ArrayBuffer.transfer = function(source, length) {
-        if (!(source instanceof ArrayBuffer))
-            throw new TypeError('Source must be an instance of ArrayBuffer');
-        if (length <= source.byteLength)
-            return source.slice(0, length);
-        var sourceView = new Uint8Array(source),
-            destView = new Uint8Array(new ArrayBuffer(length));
-        destView.set(sourceView);
-        return dest.buffer;
-    };
-}
- -

Spécifications

- - - - - - - - - - - - - - - - -
SpécificationÉtatCommentaires
Proposition pour ArrayBuffer.prototype.transferBrouillonBrouillon de niveau 2
- -

Compatibilité des navigateurs

- - - -

{{Compat("javascript.builtins.ArrayBuffer.transfer")}}

- -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/objets_globaux/date/tolocaleformat/index.html b/files/fr/web/javascript/reference/objets_globaux/date/tolocaleformat/index.html deleted file mode 100644 index 70c13e3a25..0000000000 --- a/files/fr/web/javascript/reference/objets_globaux/date/tolocaleformat/index.html +++ /dev/null @@ -1,80 +0,0 @@ ---- -title: Date.prototype.toLocaleFormat() -slug: Web/JavaScript/Reference/Objets_globaux/Date/toLocaleFormat -tags: - - Date - - JavaScript - - Méthode - - Prototype - - Reference -translation_of: Archive/Web/JavaScript/Date.toLocaleFormat ---- -
{{JSRef}} {{Non-standard_header}}
- -

La méthode non-standard toLocaleFormat() convertit une date en une chaîne de caractères, en utilisant le formatage renseigné. {{jsxref("DateTimeFormat")}} est une alternative standardisée. Voir aussi la nouvelle version de {{jsxref("Date.prototype.toLocaleDateString()")}}.

- -
-

Attention, cette fonction a été  retirée à partir de Firefox 58. Voir l'article sur cet avertissement pour plus d'informations et d'éléments pour migrer le code concerné.

-
- -

Syntaxe

- -
dateObj.toLocaleFormat(formatTexte)
- -

Paramètres

- -
-
formatTexte
-
Une chaîne de caractères formattée selon les attentes de la fonction strftime() en C.
-
- -

Valeur de retour

- -

Une chaîne de caractères qui représente la date indiquée avec le formatage décrit par l'argument.

- -

Description

- -

La méthode toLocaleFormat() apporte un meilleur contrôle sur le formattage des textes produits pour une date. Les noms des mois et des jours de la semaine sont localisés en utilisant la locale du système d'exploitation. Cependant, l'arrangement des jours et mois, ainsi que les autres tâches de localisation ne sont pas prises en charge automatiquement, puisque vous avez le contrôle sur leur ordre d'éxécution. Vous devez faire attention que la chaîne formattée soit localisée correctement en fonction des réglages du systèmes de l'utilisateur. N'oubliez pas que la locale utilisée n'est pas forcément la même que la locale du navigateur.

- -

Les développeurs de modules et XULRunner doivent savoir que charger directement le chaîne de formattage depuis un fichier .dtd ou .properties en utilisant chrome://somedomain/locale/somefile.ext doit être évité, car le fichier dtd/properties et la méthode toLocaleFormat() n'utilisent pas forcément la même locale, ce qui peut produire des résultats ambigües, ou des dates illisibles.

- -

Notez aussi que le comportement de la locale utilisée dépend de la plateforme, et que l'utilisateur peut modifier cette locale. Ainsi, utiliser la locale du système pour choisir le format, peut dans certains cas ne pas être approprié. Vous devriez envisager l'usage des méthodes plus génériques toLocale* de l'objet {{jsxref("Date")}}, ou créer votre localisation personnalisée de la date à partir des méthodes get* de l'objet Date.

- -

Utiliser toLocaleFormat()

- -
var aujourdhui = new Date();
-var date = aujourdhui.toLocaleFormat("%A, %B %e, %Y"); // A ne pas faire
-
- -

Dans cet exemple, toLocaleFormat() renvoie une chaîne de caractères tel que "Wednesday, October 3, 2007". Notez que le format de ce texte dans cet exemple n'est pas correctement localisé, ce qui amène aux problèmes décrits plus haut.

- -

Prothèse d'émulation (polyfill)

- -

En utilisant la bibliothèque DateJS, il est possible d'émuler {{jsxref("Date.prototype.toLocaleDateString()")}} pour des environnements qui n'en disposent pas nativement :

- -
if (!Date.prototype.toLocaleFormat) {
-    (function() {
-        Date.prototype.toLocaleFormat = function(formatString) {
-            return this.format(formatString);
-        };
-    }());
-}
- -

Spécifications

- -

Ne fait partie d'aucune spécification. Implémentée avec JavaScript 1.6.

- -

Compatibilité des navigateurs

- - - -

{{Compat("javascript.builtins.Date.toLocaleFormat")}}

- -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/objets_globaux/function/arity/index.html b/files/fr/web/javascript/reference/objets_globaux/function/arity/index.html deleted file mode 100644 index 9245cd83ab..0000000000 --- a/files/fr/web/javascript/reference/objets_globaux/function/arity/index.html +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: Function.arity -slug: Web/JavaScript/Reference/Objets_globaux/Function/arity -tags: - - Function - - JavaScript - - Obsolete - - Propriété - - Reference -translation_of: Archive/Web/JavaScript/Function.arity ---- -
{{JSRef}} {{Obsolete_header}}
- -

La propriété arity était utilisée pour renvoyer le nombre d'arguments attendu par la fonction. Elle n'existe plus et a été remplacée par la propriété {{jsxref("Function.prototype.length")}}.

- -

Spécifications

- -

Implémentée avec JavaScript 1.2. Obsolète depuis JavaScript 1.4.

- -

Compatibilité des navigateurs

- -
- - -

{{Compat("javascript.builtins.Function.arity")}}

-
- -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/objets_globaux/function/isgenerator/index.html b/files/fr/web/javascript/reference/objets_globaux/function/isgenerator/index.html deleted file mode 100644 index 2c483e93ec..0000000000 --- a/files/fr/web/javascript/reference/objets_globaux/function/isgenerator/index.html +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: Function.prototype.isGenerator() -slug: Web/JavaScript/Reference/Objets_globaux/Function/isGenerator -tags: - - Function - - JavaScript - - Méthode - - Reference -translation_of: Archive/Web/JavaScript/Function.isGenerator ---- -
{{JSRef}} {{Non-standard_header}}
- -

La méthode non-standard isGenerator() permettait de déterminer si une fonction était un générateur. Cette fonction a été retirée de Firefox à partir de Firefox 58.

- -

Syntaxe

- -
fun.isGenerator()
- -

Valeur de retour

- -

Un booléen indiquant si la fonction appelante est un générateur.

- -

Description

- -

La méthode isGenerator() permet de déterminer si la fonction fun est un générateur. Elle faisait partie des propositions pour Harmony mais n'a pas été retenue pour la spécification ECMAScript 2015.

- -

Exemples

- -
function f () { }
-
-function* g () {
-  yield 42;
-}
-
-console.log("f.isGenerator() = " + f.isGenerator()); // f.isGenerator() = false
-console.log("g.isGenerator() = " + g.isGenerator()); // g.isGenerator() = true
-
- -

Spécifications

- -

Cette méthode ne fait partie d'aucune spécification. Elle a été implémentée avec JavaScript 1.8.6.

- -

Compatibilité des navigateurs

- - - -

{{Compat("javascript.builtins.Function.isGenerator")}}

- -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/objets_globaux/number/tointeger/index.html b/files/fr/web/javascript/reference/objets_globaux/number/tointeger/index.html deleted file mode 100644 index cce3444088..0000000000 --- a/files/fr/web/javascript/reference/objets_globaux/number/tointeger/index.html +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: Number.toInteger() -slug: Web/JavaScript/Reference/Objets_globaux/Number/toInteger -tags: - - JavaScript - - Méthode - - Number - - Obsolete - - Reference -translation_of: Archive/Web/JavaScript/Number.toInteger ---- -
{{JSRef}}{{obsolete_header}}
- -

La méthode Number.toInteger() est utilisée pour évaluer la valeur passée en argument et la convertir en entier. Son implémentation a été supprimée.

- -

Si la valeur à convertir est {{jsxref("NaN")}}, {{jsxref("null")}} ou {{jsxref("undefined")}}, 0 sera renvoyé.
- Si la valeur à convertir est false, 0 sera renvoyé, si c'est true, 1 sera renvoyé.

- -

Syntaxe

- -
Number.toInteger(nombre)
- -

Paramètres

- -
-
nombre
-
La valeur à convertir en entier.
-
- -

Exemples

- -

Utiliser toInteger

- -

Voici quelques exemples utilisant la méthode :

- -
Number.toInteger(0.1),     // 0
-Number.toInteger(1),       // 1
-Number.toInteger(Math.PI), // 3
-Number.toInteger(null)     // 0
-
- -

Spécifications

- -

Number.toInteger faisait partie de la spécification ECMAScript 6 mais a été retirée le 23/08/2013 dans la révision 17 du brouillon (draft).

- -

Compatibilité des navigateurs

- - - -

{{Compat("javascript.builtins.Number.toInteger")}}

- -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/objets_globaux/object/count/index.html b/files/fr/web/javascript/reference/objets_globaux/object/count/index.html deleted file mode 100644 index 03dfa86bde..0000000000 --- a/files/fr/web/javascript/reference/objets_globaux/object/count/index.html +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: Object.prototype.__count__ -slug: Web/JavaScript/Reference/Objets_globaux/Object/count -tags: - - JavaScript - - Object - - Obsolete - - Propriété - - Prototype - - Reference -translation_of: Archive/Web/JavaScript/Object.count ---- -
{{JSRef}}{{Non-standard_Header}}{{obsolete_header("gecko2")}}
- -

La propriété __count__ était utilisée pour compter les propriétés énumérables d'un objet mais a été retiréee.

- -

Syntaxe

- -
obj.__count__
- -

Exemples

- -
{ 1: 1 }.__count__              // 1
-[].__count__                    // 0
-[1].__count__                   // 1
-[1, /* trou */, 2, 3].__count__ // 3
- -

Spécifications

- -

Cette propriété n'appartient à aucune spécification.

- -

Compatibilité des navigateurs

- - - -

{{Compat("javascript.builtins.Object.count")}}

- -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/objets_globaux/object/eval/index.html b/files/fr/web/javascript/reference/objets_globaux/object/eval/index.html deleted file mode 100644 index ae6e095928..0000000000 --- a/files/fr/web/javascript/reference/objets_globaux/object/eval/index.html +++ /dev/null @@ -1,47 +0,0 @@ ---- -title: Object.prototype.eval() -slug: Web/JavaScript/Reference/Objets_globaux/Object/eval -tags: - - JavaScript - - Méthode - - Object - - Obsolete - - Reference -translation_of: Archive/Web/JavaScript/Object.eval ---- -
{{JSRef}} {{obsolete_header}}
- -

La méthode Object.eval() permet d'évaluer une chaîne de caractères contenant du code JavaScript dans le contexte de l'objet. Cette méthode a été retirée.

- -

Syntaxe

- -
obj.eval(string)
- -

Paramètres

- -
-
string
-
N'importe quelle chaîne de caractères qui représente une expression JavaScript ou une séquence d'instructions. L'expression peut contenir des variables et des propriétés d'objets existants.
-
- -

Description

- -

La méthode eval ne peut plus être utilisée à partir d'un objet. Il faut utiliser la méthode {{jsxref("eval", "eval")}} à la place.

- -

Spécifications

- -

Cette méthode ne fait partie d'aucune spécification.

- -

Compatibilité des navigateurs

- -
- - -

{{Compat("javascript.builtins.Object.eval")}}

-
- -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/objets_globaux/object/getnotifier/index.html b/files/fr/web/javascript/reference/objets_globaux/object/getnotifier/index.html deleted file mode 100644 index ab7f2e2779..0000000000 --- a/files/fr/web/javascript/reference/objets_globaux/object/getnotifier/index.html +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: Object.getNotifier() -slug: Web/JavaScript/Reference/Objets_globaux/Object/getNotifier -tags: - - JavaScript - - Méthode - - Object - - Obsolete - - Reference -translation_of: Archive/Web/JavaScript/Object.getNotifier ---- -
{{JSRef}}{{obsolete_header}}
- -

La méthode Object.getNotifer() est utilisée pour créer un objet qui permet de déclencher des changements (tels que perçus par Object.observe()) de façon synthétique. Cette API a été dépréciée et retirée des navigateurs.

- -

Syntaxe

- -
Object.getNotifier(obj)
- -

Paramètres

- -
-
obj
-
L'objet dont on souhaite récupérer le notificateur (notifier) associé.
-
- -

Valeur de retour

- -

L'objet de notification associé à l'objet passé en argument.

- -

Description

- -

Le notificateur est utilisé pour déclencher des changements qui pourront être observés avec Object.observe().

- -

Spécifications

- -

Proposition de spécification.

- -

Compatibilité des navigateurs

- -
- - -

{{Compat("javascript.builtins.Object.getNotifier")}}

-
- -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/objets_globaux/object/nosuchmethod/index.html b/files/fr/web/javascript/reference/objets_globaux/object/nosuchmethod/index.html deleted file mode 100644 index bd87292bc5..0000000000 --- a/files/fr/web/javascript/reference/objets_globaux/object/nosuchmethod/index.html +++ /dev/null @@ -1,76 +0,0 @@ ---- -title: Object.prototype.__noSuchMethod__ -slug: Web/JavaScript/Reference/Objets_globaux/Object/noSuchMethod -tags: - - JavaScript - - Object - - Obsolete - - Propriété - - Prototype - - Reference -translation_of: Archive/Web/JavaScript/Object.noSuchMethod ---- -
{{JSRef}}{{Non-standard_Header}}{{Obsolete_Header("gecko43")}}
- -

La propriété __noSuchMethod__ était utilisée pour faire référence à une fonction qui devait être utilisée lorsqu'on appelait une méthode inexistante d'un objet. Cette fonction n'est plus disponible.

- -

Si __noSuchMethod__ a été abandonnée, la spécification ECMAScript 2015 (ES6) fournit les objets Proxy qui permettent de réaliser ce qui pouvait être fait avec cette propriété (et plus encore).

- -

Syntaxe

- -
obj.__noSuchMethod__ = fun
- -

Paramètres

- -
-
fun
-
Une fonction de la forme
-
-
function (id, args) { . . . }
- -
-
id
-
Le nom de la méthode qui n'est pas définie pour l'objet et qui a été appelée.
-
args
-
Le tableau d'arguments passé à la méthode.
-
-
-
- -

Description

- -

Par défaut, lorsqu'on appelle une méthode qui n'existe pas pour un objet, cela lève une exception {{jsxref("TypeError")}}. Ce comportement peut être modifié en définissant une fonction pour la propriété __noSuchMethod__. Cette fonction prend en compte deux arguments : le premier qui est le nom de la méthode non définie qui a été appelée et le second qui correspond au tableau des arguments passés lors de l'appel. Le deuxième argument est bien un tableau (il hérite de {{jsxref("Array.prototype")}}) et n'est pas un objet semblable à un tableau comme l'objet {{jsxref("Fonctions/arguments","arguments")}}.

- -

Si cette méthode ne peut être appelée, soit parce qu'elle vaut undefined (sa valeur par défaut), soit parce qu'elle a été supprimée ou définie avec une valeur qui n'est pas une fonction, le moteur JavaScript reprendra le comportement par défaut et renverra des exceptions TypeError.

- -

Exemples

- -

Un test simple avec __noSuchMethod__

- -
var o = {
-  __noSuchMethod__: function(id, args) {
-                     console.log(id, '(' + args.join(', ') + ')');
-                    }
-};
-
-o.toto(1, 2, 3);
-o.truc(4, 5);
-o.machin();
-
-// affichera
-// toto (1, 2, 3)
-// truc (4, 5)
-// machin ()
-
- -

Spécifications

- -

Cette propriété ne fait partie d'aucune spécification et a été retirée : voir le {{bug(683218)}}.

- -

Compatibilité des navigateurs

- -
- - -

{{Compat("javascript.builtins.Object.noSuchMethod")}}

-
diff --git a/files/fr/web/javascript/reference/objets_globaux/object/observe/index.html b/files/fr/web/javascript/reference/objets_globaux/object/observe/index.html deleted file mode 100644 index eb0e3ec8c0..0000000000 --- a/files/fr/web/javascript/reference/objets_globaux/object/observe/index.html +++ /dev/null @@ -1,154 +0,0 @@ ---- -title: Object.observe() -slug: Web/JavaScript/Reference/Objets_globaux/Object/observe -tags: - - JavaScript - - Méthode - - Object - - Obsolete - - Reference -translation_of: Archive/Web/JavaScript/Object.observe ---- -
{{JSRef}}{{obsolete_header}}
- -

La méthode Object.observe() est utilisée afin d'observer de façon asynchrone les modifications apportées à un objet. Cette méthode fournit un flux d'information qui correspondent aux changement apportés à l'objet, dans l'ordre dans lequel ils se sont produits. Cependant, cette API a été dépréciée et retirée des navigateurs. À la place, il est préférable d'utiliser l'objet {{jsxref("Proxy")}}.

- -

Syntaxe

- -
Object.observe(obj, callback[,listeChangements])
- -

Paramètres

- -
-
obj
-
L'objet qu'on souhaite observer.
-
callback
-
La fonction qui est appelée à chaque fois qu'un changement est effectué. Elle est invoquée avec l'argument suivant : -
-
changes
-
Un tableau d'objets dont chaque élément représente une modification. Les propriétés de ces objets sont : -
    -
  • name : Le nom de la propriété qui a été modifiée.
  • -
  • object : L'objet modifié une fois le changement apporté.
  • -
  • type : Une chaîne de caractères qui indique le type de modification qui a eu lieu. Elle peut valoir "add", "update", ou "delete".
  • -
  • oldValue : Propriété présente uniquement pour les types "update" et "delete". Elle correspond à la valeur de l'objet avant la modification.
  • -
-
-
-
-
listeChangements
-
La liste des types de changements qu'on souhaite observer sur l'objet donné avec la fonction de retour donnée. Par défaut, si cet argument n'est pas utilisé, le tableau utilisé sera ["add", "update", "delete", "reconfigure", "setPrototype", "preventExtensions"].
-
- -

Valeur de retour

- -

L'objet qu'on souhaite observer.

- -

Description

- -

La fonction callback est appelée chaque fois qu'une modification est apportée à obj avec comme argument le tableau listant l'ensemble des modifications, dans l'ordre dans lequel elles se sont produites.

- -

Exemples

- -

Enregistrer les différents types de modifications

- -
var obj = {
-  toto: 0,
-  truc: 1
-};
-
-Object.observe(obj, function(changes) {
-  console.log(changes);
-});
-
-obj.machin = 2;
-// [{name: 'machin', object: , type: 'add'}]
-
-obj.toto = 'coucou';
-// [{name: 'toto', object: , type: 'update', oldValue: 0}]
-
-delete obj.machin;
-// [{name: 'machin', object: , type: 'delete', oldValue: 2}]
-
-Object.defineProperty(objet,'toto', {writable: false});
-// [{name: 'toto', object: <obj>, type: 'reconfigure'}]
-
-Object.setPrototypeOf(obj, {});
-//  [{name: '__proto__',object: <obj>, type: 'setPrototype', oldValue: <prototype>}]
-
-Object.seal(obj);
-// [
-//    {name: 'toto', object: <obj>, type: 'reconfigure'},
-//    {name: 'machin', object: <obj>, type: 'reconfigure'},
-//    {object: <obj>, type: 'preventExtensions'}
-// ]
-
- -

Lier des données

- -
// Un objet représentant un utilisateur
-var utilisateur = {
-  id: 0,
-  nom: 'Brendan Eich',
-  titre: 'Mr.'
-};
-
-// Une fonction de salutation
-function majSalutation() {
-  user.greeting = 'Bonjour, ' + utilisateur.titre + ' ' + utilisateur.nom + ' !';
-}
-majSalutation();
-
-Object.observe(utilisateur, function(changes) {
-  changes.forEach(function(change) {
-    // Pour chaque modification qui porte sur le nom ou le titre
-    // on met à jour la salutation
-    if (change.name === 'nom' || change.name === 'titre') {
-      majSalutation();
-    }
-  });
-});
-
- -

Exemple : Enregistrer des changements personnalisés

- -
// On représente un point sur un plan bidimensionnel
-var point = {x: 0, y: 0, distance: 0};
-
-function setPosition(pt, x, y) {
-  // On effectue un changement personnalisé
-  Object.getNotifier(pt).performChange('reposition', function() {
-    var exDistance = pt.distance;
-    pt.x = x;
-    pt.y = y;
-    pt.distance = Math.sqrt(x * x + y * y);
-    return {exDistance: exDistance};
-  });
-}
-
-Object.observe(point, function(changes) {
-  console.log('Distance modifiée : ' + (point.distance - changes[0].exDistance));
-}, ['reposition']);
-
-setPosition(point, 3, 4);
-// Distance modifiée : 5
- -

Spécifications

- -

Proposition de spécification (straw man proposal).

- -

Compatibilité des navigateurs

- -
- - -

{{Compat("javascript.builtins.Object.observe")}}

-
- -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/objets_globaux/object/parent/index.html b/files/fr/web/javascript/reference/objets_globaux/object/parent/index.html deleted file mode 100644 index dfbda99f34..0000000000 --- a/files/fr/web/javascript/reference/objets_globaux/object/parent/index.html +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: Object.prototype.__parent__ -slug: Web/JavaScript/Reference/Objets_globaux/Object/Parent -tags: - - JavaScript - - Object - - Obsolete - - Propriété - - Prototype - - Reference -translation_of: Archive/Web/JavaScript/Object.parent ---- -
{{JSRef}}{{Non-standard_Header}}{{Obsolete_Header("gecko2")}}
- -

La propriété __parent__ était utilisée pour pointer vers le contexte d'un objet mais elle a été supprimée.

- -

Syntaxe

- -
obj.__parent__
- -

Description

- -

Pour les objets de plus haut niveau, on aurait eu window par exemple.

- -

Spécifications

- -

Cette propriété ne fait partie d'aucune spécification.

- -

Compatibilité des navigateurs

- -
- - -

{{Compat("javascript.builtins.Object.parent")}}

-
- -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/objets_globaux/object/unobserve/index.html b/files/fr/web/javascript/reference/objets_globaux/object/unobserve/index.html deleted file mode 100644 index 88de52a813..0000000000 --- a/files/fr/web/javascript/reference/objets_globaux/object/unobserve/index.html +++ /dev/null @@ -1,103 +0,0 @@ ---- -title: Object.unobserve() -slug: Web/JavaScript/Reference/Objets_globaux/Object/unobserve -tags: - - JavaScript - - Méthode - - Object - - Obsolete - - Reference -translation_of: Archive/Web/JavaScript/Object.unobserve ---- -
{{JSRef}} {{obsolete_header}}
- -

La méthode Object.unobserve() est utilisée pour retirer des observateurs placés avec {{jsxref("Object.observe()")}}. Cette méthode et l'API à laquelle elle appartient ont été dépréciées et retirées des navigateurs. À la place, il est préférable d'utiliser l'objet {{jsxref("Proxy")}}.

- -

Syntaxe

- -
Object.unobserve(obj, callback)
- -

Paramètres

- -
-
obj
-
L'objet qu'on souhaite arrêter d'observer.
-
callback
-
La référence vers l'observateur qu'on souhaite arrêter d'appeler à chaque fois qu'une modification est apportée à obj.
-
- -

Valeur de retour

- -

L'objet qui n'est plus observé.

- -

Description

- -

Object.unobserve() doit être appelé après {{jsxref("Object.observe()")}} afin de retirer un observateur d'un objet.

- -

La fonction de rappel (callback) doit être une référence à la fonction et non une fonction anonyme. En effet, c'est cette référence qui sera utilisée pour retirer l'observateur précédemment placé. Appeler Object.unobserve() avec une fonction anonyme n'aura aucun effet, cela ne retirera aucun observateur.

- -

Exemples

- -

Arrêter l'observation un objet

- -
var obj = {
-  toto: 0,
-  truc: 1
-};
-
-var observer = function(changements) {
-  console.log(changements);
-}
-
-Object.observe(obj, observer);
-​
-obj.nouvelleProp = 2;
-// [{name: 'nouvelleProp', object: <obj>, type: 'add'}]
-
-Object.unobserve(obj, observer);
-
-obj.toto = 1;
-// La fonction callback n'a pas été appelée
- -

Utiliser une fonction anonyme

- -
var personne = {
-  name : 'Ahmed',
-  age : 25
-};
-
-Object.observe(personne, function (changements) {
-  console.log(changements);
-});
-
-personne.age = 40;
-// [{name: 'age', object: <obj>, oldValue: 25, type: 'update'}]
-
-Object.unobserve(personne, function (changements) {
-  console.log(changements);
-});
-
-personne.age = 63;
-// [{name: 'age', object: <obj>, oldValue: 40, type: 'update'}]
-// La fonction callback est toujours appelée
-
- -

Specifications

- -

Proposition de spécification (strawman proposal).

- -

Compatibilité des navigateurs

- -
- - -

{{Compat("javascript.builtins.Object.unobserve")}}

-
- -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/objets_globaux/object/unwatch/index.html b/files/fr/web/javascript/reference/objets_globaux/object/unwatch/index.html deleted file mode 100644 index 4863156034..0000000000 --- a/files/fr/web/javascript/reference/objets_globaux/object/unwatch/index.html +++ /dev/null @@ -1,70 +0,0 @@ ---- -title: Object.prototype.unwatch() -slug: Web/JavaScript/Reference/Objets_globaux/Object/unwatch -tags: - - JavaScript - - Méthode - - Non-standard - - Object - - Prototype - - Reference -translation_of: Archive/Web/JavaScript/Object.unwatch ---- -
{{JSRef}}{{Non-standard_header}}
- -
-

Méthode dépréciée ! Ne pas utiliser unwatch() et {{jsxref("Object.prototype.watch", "watch()")}}. En effet, ces deux méthodes n'étaient implémentées qu'avec Gecko et ont été retirées à partir de Firefox 58. De plus, l'ajout de points d'arrêts conditionnels a de graves impacts sur les performances, notamment sur les objets globaux comme window. Il est conseillé d'utiliser les accesseurs et mutateurs ou les proxies.

-
- -

La méthode unwatch() permet de retirer un point d'arrêt conditionnel créé par la méthode {{jsxref("Object.prototype.watch", "watch()")}}.

- -

Syntaxe

- -
obj.unwatch(prop)
- -

Paramètres

- -
-
prop
-
Le nom de la propriété dont on ne veut plus suivre l'état.
-
- -

Valeur de retour

- -

{{jsxref("undefined")}}.

- -

Description

- -

Le débogueur JavaScript possède plusieurs fonctionnalités, y compris celles offertes par cette fonction. Pour plus d'informations sur cet outil, voir le débogueur JavaScript.

- -

Par défaut, tous les objets qui descendent de {{jsxref("Object")}} héritent de cette méthode.

- -
-

Note : unwatch() utilise le nom d'une seule propriété comme paramètre. Ce comportement est expliqué avec la méthode {{jsxref("Object.watch", "watch()")}}.

-
- -

Exemples

- -

Voir {{jsxref("Object.watch", "watch()")}}.

- -

Spécifications

- -

Cette méthode ne fait partie d'aucune spécification. Implémentée avec JavaScript 1.2.

- -

Compatibilité des navigateurs

- -
- - -

{{Compat("javascript.builtins.Object.unwatch")}}

-
- -

Notes de compatibilté

- -

Si on appelle unwatch() sur un objet {{domxref("Document")}}, on aura une exception {{jsxref("TypeError")}} à partir de Firefox 23 ({{bug(903332)}}). Cette régression a été corrigée avec Firefox 27.

- -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/objets_globaux/object/watch/index.html b/files/fr/web/javascript/reference/objets_globaux/object/watch/index.html deleted file mode 100644 index 5a99dfe28f..0000000000 --- a/files/fr/web/javascript/reference/objets_globaux/object/watch/index.html +++ /dev/null @@ -1,150 +0,0 @@ ---- -title: Object.prototype.watch() -slug: Web/JavaScript/Reference/Objets_globaux/Object/watch -tags: - - JavaScript - - Méthode - - Non-standard - - Object - - Prototype - - Reference -translation_of: Archive/Web/JavaScript/Object.watch ---- -
{{JSRef}}{{non-standard_header}}
- -
-

Méthode dépréciée ! Ne pas utiliser watch() et {{jsxref("Object.prototype.unwatch", "unwatch()")}}. En effet, ces deux méthodes n'ont été implémentées qu'avec Gecko et sont dépréciées. Elle sont retirées avec à partir de Firefox 58. De plus, l'ajout de points d'arrêts conditionnels a de graves impacts sur les performances, notamment sur les objets globaux comme window. Il est conseillé d'utiliser les accesseurs et mutateurs ou les proxies. Attention également à ne pas confondre {{jsxref("Object.prototype.watch", "Object.watch")}} et {{jsxref("Object.prototype.observe", "Object.observe")}}.

-
- -

La méthode watch() permet d'appeler une fonction lorsqu'une propriété est affectée.

- -

Syntaxe

- -
obj.watch(prop, handler)
- -

Paramètres

- -
-
prop
-
Le nom d'une propriété d'un objet dont on souhaite surveiller les changements.
-
handler
-
Une fonction à appeler quand la valeur de la propriété est modifiée.
-
- -

Valeur de retour

- -

{{jsxref("undefined")}}.

- -

Description

- -

Cette méthode permet de surveiller les assignations à une propriété appelée prop de l'objet courant, et appelle handler(prop, ancienneValeur, nouvelleValeur) dès que prop est définie et enregistre la valeur de retour dans cette propriété. Un tel point de surveillance peut filtrer (ou rendre null) l'assignation de la valeur, en renvoyant une valeur nouvelleValeur modifiée (ou en renvoyant ancienneValeur).

- -

Si une propriété pour laquelle un point de surveillance avait été défini, celui-ci ne disparait pas. Si la propriété est recréée par la suite, le point de surveillance sera toujours en activité.

- -

Pour retirer un point de surveillance, utilisez la méthode {{jsxref("Object.unwatch", "unwatch()")}}/ Par défaut, la méthode watch est héritée par tous les objets descendant d'Object.

- -

Le débogueur JavaScript a des fonctionnalités similaires à celles fournies par cette méthode, ainsi que d'autres options de débogage. Pour en savoir plus, voir le débogueur JavaScript.

- -

Dans Firefox, handler n'est appelé que pour les assignations par script, pas depuis du code natif. Par exemple, window.watch('location', myHandler) n'appellera pas myHandler si l'utilisateur clique sur un lien vers une cible dans le document courant. Par contre, window.location += '#myAnchor' appellera myHandler :

- -

Exemples

- -

Utiliser watch et unwatch

- -
var o = {p:1};
-o.watch("p",
-   function (id, oldval, newval) {
-      console.log("o." + id + " a été modifiée de " + oldval + " en " + newval);
-      return newval;
-   });
-
-o.p = 2;
-o.p = 3;
-delete o.p;
-o.p = 4;
-
-o.unwatch('p');
-o.p = 5;
-
- -

Ce script affiche la sortie suivante :

- -
o.p a été modifiée de 1 en 2
-o.p a été modifiée de 2 en 3
-o.p a été modifiée de undefined en 4
-
- -

Utiliser watch pour valider les propriétés d'un objet

- -

La méthode watch peut être utilisée pour tester les assignations d'une propriété d'objet. Cet exemple s'assure que toute Personne a un nom valide et un age entre 0 et 200.

- -
Personne = function(name,age) {
-  this.watch("age", Personne.prototype._isValidAssignment);
-  this.watch("nom", Personne.prototype._isValidAssignment);
-  this.nom = nom;
-  this.age = age;
-}
-
-Personne.prototype.toString = function() {
-  return this.nom + ", " + this.age;
-};
-
-Personne.prototype._isValidAssignment = function(id, oldval, newval) {
-  if (id == "nom" && (!newval || newval.length > 30)) {
-    throw new RangeError("nom invalide pour " + this);
-  }
-  if (id == "age"  && (newval < 0 || newval > 200)) {
-    throw new RangeError("âge invalide pour " + this);
-  }
-  return newval;
-}
-
-will = new Personne("Will", 29);
-console.log(will);   // Will, 29
-
-try {
-  will.nom = "";
-} catch (e) {
-  console.log(e);
-}
-
-try {
-  will.age = -4;
-} catch (e) {
-  console.log(e);
-}
-
- -

Ce script affichera la sortie suivante :

- -
Will, 29
-RangeError: nom invalide pour Will, 29
-RangeError: âge invalide pour Will, 29
-
- -

Spécifications

- -

Cette méthode ne fait partie d'aucune spécification. Elle a été implémentée avec JavaScript 1.2.

- -

Compatibilité des navigateurs

- -
- - -

{{Compat("javascript.builtins.Object.watch")}}

-
- -

Notes de compatibilité

- - - -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/objets_globaux/parallelarray/index.html b/files/fr/web/javascript/reference/objets_globaux/parallelarray/index.html deleted file mode 100644 index 2ab4d8bb74..0000000000 --- a/files/fr/web/javascript/reference/objets_globaux/parallelarray/index.html +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: ParallelArray -slug: Web/JavaScript/Reference/Objets_globaux/ParallelArray -tags: - - JavaScript - - Obsolete - - ParallelArray - - Reference -translation_of: Archive/Web/ParallelArray ---- -
{{jsSidebar("Objects")}}{{ obsolete_header}}
- -

Le but de ParallelArray est de disposer de parallélisme pour les données des applications web. Les fonctions disponibles via cette objet tenteront une exécution en parallèle avant de traiter l'exécution de façon séquentielle si besoin. Pour être sûr que votre code puisse être exécuté en parallèle, il est conseillé de se limiter aux fonctions JavaScript parallélisables supportées par Firefox (article en anglais).

- -

Syntaxe

- -
new ParallelArray()
-new ParallelArray([element0, element1, ...])
-new ParallelArray(arrayLength, elementalFunction)
- -

Instances de ParallelArray

- -

Propriétés

- -
-
length
-
Indique le nombre d'éléments dans l'objet ParallelArray.
-
- -

Méthodes

- -
-
map
-
reduce
-
scan
-
scatter
-
filter
-
flatten
-
partition
-
get
-
- -

Exemples

- -

Utilisation de map en parallèle

- -
var p = new ParallelArray([0, 1, 2, 3, 4]);
-var m = p.map(function (v) {
-  return v + 1;
-});
- -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/objets_globaux/stopiteration/index.html b/files/fr/web/javascript/reference/objets_globaux/stopiteration/index.html deleted file mode 100644 index 5b26730085..0000000000 --- a/files/fr/web/javascript/reference/objets_globaux/stopiteration/index.html +++ /dev/null @@ -1,115 +0,0 @@ ---- -title: StopIteration -slug: Web/JavaScript/Reference/Objets_globaux/StopIteration -tags: - - JavaScript - - Legacy Iterator - - Reference - - Référence(2) - - StopIteration -translation_of: Archive/Web/StopIteration ---- -
{{jsSidebar("Objects")}}{{deprecated_header}}
- -
Non standard. L'objet StopIteration est une fonctionnalité propre à SpiderMonkey. Pour utiliser des fonctions pérennes, préférez les boucles {{jsxref("Instructions/for...of", "for...of")}} et le protocole itérateur.
- -

L'objet StopIteration est une exception levée lorsque l'on cherche à accéder au prochain élément d'un itérateur épuisé et implémentant le protocole itérateur historique.

- -

Syntaxe

- -
StopIteration
- -

Description

- -

StopIteration est un élément lié à l'ancien protocole pour les itérateurs. Il sera retiré en même temps que les itérateurs et générateurs historiques (pour être remplacé par l'équivalent ECMAScript2015/ECMAScript6).

- -

Exemples

- -

StopIteration est levée par l'objet {{jsxref("Objets_globaux/Iterator", "Iterator")}}.

- -
var a = {
-  x: 10,
-  y: 20
-};
-var iter = Iterator(a);
-console.log(iter.next()); // ["x", 10]
-console.log(iter.next()); // ["y", 20]
-console.log(iter.next()); // lève StopIteration
-
- -

Lever StopIteration directement.

- -
function f() {
-  yield 1;
-  yield 2;
-  throw StopIteration;
-  yield 3; // cette ligne ne sera jamais exécutée
-}
-
-for (var n in f()) {
-  console.log(n);   // imprime 1, puis 2, mais pas 3
-}
-
- -

Spécifications

- -

Non standard. Ne fait partie d'aucun standard.

- -

Compatibilité des navigateurs

- -
{{CompatibilityTable}}
- -
- - - - - - - - - - - - - - - - - - - -
FonctionnalitéChromeFirefox (Gecko)Internet ExplorerOperaSafari
Support simple{{CompatNo}}{{CompatVersionUnknown}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
-
- -
- - - - - - - - - - - - - - - - - - - - - -
FonctionnalitéAndroidChrome pour AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Support simple{{CompatNo}}{{CompatNo}}{{CompatVersionUnknown}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
-
- -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/objets_globaux/string/quote/index.html b/files/fr/web/javascript/reference/objets_globaux/string/quote/index.html deleted file mode 100644 index 181ae613fc..0000000000 --- a/files/fr/web/javascript/reference/objets_globaux/string/quote/index.html +++ /dev/null @@ -1,72 +0,0 @@ ---- -title: String.prototype.quote() -slug: Web/JavaScript/Reference/Objets_globaux/String/quote -tags: - - JavaScript - - Méthode - - Obsolete - - Prototype - - Reference - - String -translation_of: Archive/Web/JavaScript/String.quote ---- -
{{obsolete_header("37")}}{{JSRef}} {{Non-standard_header}}
- -

La méthode quote() est une méthode non-standard qui permet de renvoyer une copie de la chaîne de caractères en remplaçant les différents caractères spéciaux de la chaîne par leur séquence d'échappement et en encadrant le résultat avec des doubles quotes (").

- -

Syntaxe

- -
str.quote()
- -

Valeur de retour

- -

Une nouvelle chaîne de caractères représentant la chaîne appelante, encadrée entre doubles quotes et pour laquelle les caractères spéciaux ont été échappés.

- -

Exemples

- -

Le tableau suivant illustre comment la méthode quote remplace les différents caractères spéciaux et encadre la chaîne résultante entre doubles quotes. La troisième colonne illustre comment la méthode eval évalue les séquences d'échappement à nouveau.

- - - - - - - - - - - - - - - - - - - - - - - - - - -
strstr.quote()eval(str.quote())
Coucou monde !"Coucou monde !"Coucou monde !
Coucou
-         monde !
"Coucou\n\tmonde !"Coucou
-         monde !
" \ — '"\" \\ \u2014 '"" \ — '
- -

Spécifications

- -

Aucune. Cette méthode ne fait partie d'aucun standard. Elle a été implémentée avec JavaScript 1.3.

- -

Compatibilité des navigateurs

- - - -

{{Compat("javascript.builtins.String.quote")}}

- -

Voir aussi

- - diff --git "a/files/fr/web/javascript/reference/op\303\251rateurs/compr\303\251hensions_de_g\303\251n\303\251rateur/index.html" "b/files/fr/web/javascript/reference/op\303\251rateurs/compr\303\251hensions_de_g\303\251n\303\251rateur/index.html" deleted file mode 100644 index 83682e6284..0000000000 --- "a/files/fr/web/javascript/reference/op\303\251rateurs/compr\303\251hensions_de_g\303\251n\303\251rateur/index.html" +++ /dev/null @@ -1,183 +0,0 @@ ---- -title: Compréhensions de générateur -slug: Web/JavaScript/Reference/Opérateurs/Compréhensions_de_générateur -tags: - - Iterator - - JavaScript - - Non-standard - - Obsolete - - Reference -translation_of: Archive/Web/JavaScript/Generator_comprehensions ---- -
{{JSSidebar("Operators")}}{{Non-standard_Header}}{{Obsolete_Header("gecko58")}}
- -
Non-standard. Ne pas utiliser !
-La syntaxe de  compréhensions de générateurs ne sont pas une fonctionnalité standard et ont été retirées à partir de Firefox 58. Mieux vaut utiliser les {{jsxref("Instructions/function*", "générateurs", "", 1)}} pour des fonctionnalités similaires.
- -

La syntaxe de compréhension de générateur était une expression qui permettait de construire rapidement une fonction génératrice à partir d'un objet itérable. Toutefois, cette syntaxe a été retirée du standard et de l'implémentation qui en est faite par Firefox. Elle ne doit pas être utilisée.

- -

Syntaxe

- -
(for (x of itérable) x)
-(for (x of itérable) if (condition) x)
-(for (x of itérable) for (y of itérable) x + y)
-
- -

Description

- -

Une compréhension de générateur peut contenir deux sortes de composants :

- - - -

L'itération for-of est toujours le premier composant. Il est possible d'utiliser plusieurs itérations for-of et plusieurs instructions if.

- -

Les {{jsxref("Opérateurs/Compréhensions_de_tableau","compréhensions de tableaux","","true")}} ont un inconvénient majeur : quand on les utilise, un nouveau tableau est créé en mémoire. Cela ne pose pas de problème particulier quand le tableau en question est petit (l'impact sera alors léger) mais lorsque le tableau est très grand (voire infini avec un générateur), cela peut poser problème que de vouloir créer un nouveau tableau.

- -

Les générateurs permettent de calculer des suites à la demande (chaque élément successif est calculé lorsqu'on en a besoin). Les compréhensions de générateurs sont presque identiques, d'une point de vue syntaxique, aux compréhensions de tableaux. Plutôt d'utiliser des crochets, elles utilisent des parenthèses et au lieu de créer un tableau, elles créent un générateur qui pourra être utilisé. Cette notation peut être vue comme une notation raccourcie pour créer des générateurs.

- -

Imaginons qu'on ait un itérateur qui parcourt une grande série d'entiers et qu'on veuille créer un itérateur qui itère sur les doubles de ces entiers. Une compréhension de tableau entraînerait la création d'un tableau complet en mémoire, dont les éléments seraient les valeurs doublées :

- -
var doubles = [for (i in it) i * 2];
-
- -

En revanche, une compréhension de générateur permettrait de créer un nouvel itérateur qui pourrait être utilisé pour créer les valeurs doublées à la demande, quand on a besoin de les utiliser :

- -
var it2 = (for (i in it) i * 2);
-console.log(it2.next()); // La première valeur, doublée
-console.log(it2.next()); // La deuxième valeur, doublée
-
- -

Lorsqu'une compréhension de générateur est utilisée comme un argument d'une fonction, les parenthèses utilisées pour l'appel de la fonction permettent de ne pas écrire les parenthèse encadrant la compréhension :

- -
var résultat = faireQuelqueChose(for (i in it) i * 2);
-
- -

Avec la compréhension de générateur, on ne parcourt qu'une fois la structure de l'objet alors qu'avec une compréhension de tableau, on parcourt une fois le tableau pour construire la nouvelle version puis une seconde fois quand on souhaite l'utiliser.

- -

Exemples

- -

Compréhensions simples

- -
(for (i of [ 1, 2, 3 ]) i*i );
-// fonction génératrice qui générera 1, 4, et 9
-
-[...(for (i of [ 1, 2, 3 ]) i*i )];
-// [1, 4, 9]
-
-var abc = [ "A", "B", "C" ];
-(for (lettres of abc) lettres.toLowerCase());
-// fonction génératrice qui générera "a", "b", et "c"
-
- -

Compréhensions utilisant une instruction if

- -
var années = [ 1954, 1974, 1990, 2006, 2010, 2014 ];
-
-(for (année of années) if (année > 2000) année);
-// fonction génératrice qui générera 2006, 2010, et 2014
-
-(for (année of années) if (année > 2000) if(année < 2010) année);
-// fonction génératrice qui générera 2006, équivaut à :
-
-(for (année of années) if (année > 2000 && année < 2010) année);
-// fonction génératrice qui générera 2006
-
- -

Compréhensions de générateurs et fonctions génératrices

- -

Pour mieux comprendre la syntaxe des compréhensions, on peut la comparer avec celle des fonctions génératrices :

- -

Exemple 1 : Générateur simple.

- -
var nombres = [ 1, 2, 3 ];
-
-// Fonction génératrice
-(function*() {
-  for (let i of nombres) {
-    yield i * i;
-  }
-})()
-
-// Compréhension de générateur
-(for (i of nombres) i*i );
-
-// Résultat : les deux instructions renvoient chacune un générateur pour créer [ 1, 4, 9 ]
-
- -

Second exemple : Un générateur avec if.

- -
var nombres = [ 1, 2, 3 ];
-
-// Fonction génératrice
-(function*() {
-  for (let i of nombres) {
-    if (i < 3) {
-      yield i * 1;
-    }
-  }
-})()
-
-// Compréhension
-(for (i of nombres) if (i < 3) i);
-
-// Résultat : les deux renvoient un générateur qui générera [ 1, 2 ]
- -

Spécifications

- -

Était initialement prévu pour le brouillon ECMAScript 2015 mais fut retiré lors de la révision 27 (août 2014). Consulter les révisions antérieures d'ES2015 pour les spécifications de cette sémantique.

- -

Compatibilité des navigateurs

- - - -

{{Compat("javascript.operators.generator_comprehensions")}}

- -

Notes relatives à l'implémentation de SpiderMonkey

- - - -

Différences avec les anciennes compréhensions JS 1.7 et JS 1.8

- -
-

Les compréhensions « JS1.7 / JS1.8 » ont été retirées à partir de Gecko 46 ({{bug(1220564)}}).

-
- -

Ancienne syntaxe pour les compréhensions (ne plus l'utiliser) :

- -
[X for (Y in Z)]
-[X for each (Y in Z)]
-[X for (Y of Z)]
-
- -

Les différences :

- - - -

Voir aussi

- - diff --git "a/files/fr/web/javascript/reference/op\303\251rateurs/compr\303\251hensions_de_tableau/index.html" "b/files/fr/web/javascript/reference/op\303\251rateurs/compr\303\251hensions_de_tableau/index.html" deleted file mode 100644 index 17a61266a9..0000000000 --- "a/files/fr/web/javascript/reference/op\303\251rateurs/compr\303\251hensions_de_tableau/index.html" +++ /dev/null @@ -1,209 +0,0 @@ ---- -title: Compréhensions de tableau -slug: Web/JavaScript/Reference/Opérateurs/Compréhensions_de_tableau -tags: - - JavaScript - - Non-standard - - Obsolete - - Opérateurs - - Reference -translation_of: Archive/Web/JavaScript/Array_comprehensions ---- -
{{jsSidebar("Operators")}}{{Obsolete_Header(58)}}
- -
Non-standard. Ne pas utiliser !
-Les compréhensions de tableau ne sont pas standard et ont été retirées à partir de Firefox 58. Pour obtenir des fonctionnalités équivalentes, il est conseillés d'utiliser {{jsxref("Array.prototype.map")}}, {{jsxref("Array.prototype.filter")}}, {{jsxref("Fonctions/Fonctions_fléchées", "les fonctions fléchées", "", 1)}} et la{{jsxref("Opérateurs/Opérateurs/Affecter_par_décomposition", "décomposition", "", 1)}}.
- -

La syntaxe de compréhension de tableau était une expression JavaScript permettant de construire rapidement un nouveau tableau à partir d'un tableau existant. Toutefois, cette syntaxe a été retirée du standard et de l'implémentation qui en est faite par Firefox. Elle ne doit pas être utilisée.

- -

Syntaxe

- -
[for (x of itérable) x]
-[for (x of itérable) if (condition) x]
-[for (x of itérable) for (y of itérable) x + y]
-
- -

Description

- -

Dans une compréhension de tableau, on peut utiliser deux types de composants :

- - - -

L'itération basée sur for...of sera toujours le premier composant. On peut utiliser plusieurs for...of ou instructions if.

- -

Les compréhensions de tableau furent proposées pour être standardisées avec ECMAScript 2016. Elles fournissent une notation raccourcie pour pouvoir construire un nouveau tableau basé sur le contenu d'un autre tableau. Les compréhensions sont proches des fonctions {{jsxref("Array.prototype.map", "map()")}} et {{jsxref("Array.prototype.filter", "filter()")}} qui peuvent être combinées pour arriver au même effet.

- -

La compréhension qui suit prend un tableau de nombres et crée un nouveau tableau qui contiendra les doubles de chaque élément :

- -
var nombres = [1, 2, 3, 4];
-var doublés = [for (i of nombres) i * 2];
-console.log(doublés); // affiche 2,4,6,8
-
- -

Cela est équivalent à l'opération suivante, qui utilise {{jsxref("Array.prototype.map", "map()")}} :

- -
var doublés = nombres.map(i => i * 2);
-
- -

Les compréhensions peuvent également être utilisées pour sélectionner certains éléments qui respectent un critère donné. Voici par exemple une compréhension qui ne sélectionne que les nombres pairs :

- -
var nombres = [1, 2, 3, 21, 22, 30];
-var pairs = [for (i of nombres) if (i % 2 === 0) i];
-console.log(pairs); // affiche 2,22,30
-
- -

Ici, la méthode {{jsxref("Array.prototype.filter", "filter()")}} peut être utilisée pour parvenir au même résultat :

- -
var pairs = nombres.filter(i => i % 2 === 0);
-
- -

{{jsxref("Array.prototype.map", "map()")}} et {{jsxref("Array.prototype.filter", "filter()")}} peuvent être utilisés pour traduire une compréhension de tableau.

- -

Voici un autre exemple de compréhension, qui ne prend que les nombres pairs et qui les double :

- -
var nombres = [1, 2, 3, 21, 22, 30];
-var pairsDoublés = [for (i of nombres) if (i % 2 === 0) i * 2];
-console.log(pairsDoublés); // affiche 4,44,60
-
- -

Les crochets d'une compréhension introduisent un bloc implicite pour les portées. Les nouvelles variables (comme i dans l'exemple), sont traitées comme si elles avaient été déclarées avec {{jsxref("Instructions/let","let")}}. Cela signifie donc que ces variables ne pourront pas être utilisées en dehors de la compréhension.

- -

L'élément d'entrée d'une compréhension de tableau ne doit pas nécessairement être un tableau, il est également possible d'utiliser des itérateurs et des générateurs.

- -

Une chaîne de caractères peut aussi être utilisé comme élément de départ :

- -
var str = 'abcdef';
-var consonnes = [for (c of str) if (!(/[aeiouyAEIOUY]/).test(c)) c].join(''); // 'bcdf'
-var avecZéros = [for (c of str) c+'0' ].join(''); // 'a0b0c0d0e0f0'
-
- -

Là encore, la structure de l'élément d'entrée n'est pas préservée, il faut donc utiliser {{jsxref("Array.prototype.join", "join()")}} pour récupérer une chaîne.

- -

Exemples

- -

Compréhensions de tableaux simples

- -
[for (i of [ 1, 2, 3 ]) i*i ];
-// [ 1, 4, 9 ]
-
-var abc = [ "A", "B", "C" ];
-[for (lettres of abc) lettres.toLowerCase()];
-// [ "a", "b", "c" ]
- -

Compréhensions de tableaux utilisant if

- -
var années = [ 1954, 1974, 1990, 2006, 2010, 2014 ];
-[for (année of années) if (année > 2000) année];
-// [ 2006, 2010, 2014 ]
-[for (année of années) if (année > 2000) if(année < 2010) année];
-// [ 2006 ] qui correspond aussi à
-[for (année of années) if (année > 2000 && année < 2010) année];
-// [ 2006 ]
- -

Comparaison avec map et filter

- -

Afin de mieux comprendre la syntaxe des compréhensions, on peut la comparer avec les méthodes de l'objet Array {{jsxref("Array.map", "map")}} et {{jsxref("Array.filter", "filter")}} :

- -
var nombres = [ 1, 2, 3 ];
-
-nombres.map(function (i) { return i * i });
-nombres.map(i => i*i);
-[for (i of nombres) i*i ];
-// tous vaudront [ 1, 4, 9 ]
-
-nombres.filter(function (i) { return i < 3 });
-nombres.filter(i => i < 3);
-[for (i of nombres) if (i < 3) i];
-// on obtiendra [ 1, 2 ] pour ces trois instructions
-
- -

Les compréhensions manipulant deux tableaux

- -

On peut itérer deux fois avec for...of afin de travailler avec deux tableaux :

- -
var nombres = [ 1, 2, 3 ];
-var lettres = [ "a", "b", "c" ];
-
-var produitCartésien = [for (i of nombres) for (j of lettres) i+j];
-// [ "1a", "1b", "1c", "2a", "2b", "2c", "3a", "3b", "3c" ]
-
-var grille = [for (i of nombres) [for (j of lettres) i+j]];
-// [
-//  ["1a", "1b", "1c"],
-//  ["2a", "2b", "2c"],
-//  ["3a", "3b", "3c"]
-// ]
-
-[for (i of nombres) if (i > 1) for (j of lettres) if(j > "a") i+j]
-// ["2b", "2c", "3b", "3c"], correspond à :
-
-[for (i of nombres) for (j of lettres) if (i > 1) if(j > "a") i+j]
-// ["2b", "2c", "3b", "3c"]
-
-[for (i of nombres) if (i > 1) [for (j of lettres) if(j > "a") i+j]]
-// [["2b", "2c"], ["3b", "3c"]], ne correspond pas à :
-
-[for (i of nombres) [for (j of lettres) if (i > 1) if(j > "a") i+j]]
-// [[], ["2b", "2c"], ["3b", "3c"]]
-
- -

Spécifications

- -

Ce point faisait initialement partie du brouillon ECMAScript 2015 mais fut retiré dans la révision 27 (août 2014). Veuillez vous référer aux révisions précédentes pour la sémantique utilisée.

- -

Compatibilité des navigateurs

- - - -

{{Compat("javascript.operators.array_comprehensions")}}

- -

Notes spécifiques relatives à l'implémentation de SpiderMonkey

- - - -

Différences avec les compréhensions précédentes JS1.7/JS1.8

- -
-

Les compréhensions « JS1.7 / JS1.8 » ont été retirées à partir de Gecko 46 ({{bug(1220564)}}).

-
- -

Ancienne syntaxe pour les compréhensions (ne plus l'utiliser) :

- -
[X for (Y in Z)]
-[X for each (Y in Z)]
-[X for (Y of Z)]
-
- -

Les différences :

- - - -

Pour quelques suggestions pour migrer du code, voir le bug {{bug("1220564")}} et notamment le commentaire #42.

- -

Voir aussi

- - diff --git "a/files/fr/web/javascript/reference/op\303\251rateurs/expression_closures/index.html" "b/files/fr/web/javascript/reference/op\303\251rateurs/expression_closures/index.html" deleted file mode 100644 index a80e576883..0000000000 --- "a/files/fr/web/javascript/reference/op\303\251rateurs/expression_closures/index.html" +++ /dev/null @@ -1,85 +0,0 @@ ---- -title: Expression closures -slug: Web/JavaScript/Reference/Opérateurs/Expression_closures -tags: - - Functions - - JavaScript - - Non-standard - - Obsolete - - Reference -translation_of: Archive/Web/JavaScript/Expression_closures ---- -
{{JSSidebar("Operators")}}{{Non-standard_Header}}{{Obsolete_Header("gecko60")}}
- -
Opérateur non-standard, ne pas utiliser !
-Cette syntaxe est une fonctionnalité dépréciée, spécifique à Firefox et qui a été retirée avec Firefox 60. En remplacement, il est préférable d'utiliser les fonctions fléchées.
- -

Les expressions de fermetures sont une notation de raccourci pour écrire des fonctions simples.

- -

Syntaxe

- -
function [nom]([param1[, param2[, ..., paramN]]])
-   expression
-
- -

Paramètres

- -
-
nom
-
Le nom de la fonction, ce paramètre est optionnel. S'il n'est pas utilisé, la fonction sera anonyme. Le nom de cette fonction est local uniquement pour le corps de la fonction.
-
paramN
-
Le nom d'un argument à passer à la fonction. Une fonction peut avoir jusqu'à 255 arguments.
-
expression
-
L'expression qui correspond au corps de la fonction.
-
- -

Description

- -

Cet élément du langage n'est qu'une notation raccourcie pour l'écriture de fonctions simples. Il permet d'approcher un peu plus d'une notation correspondant au lambda calcul.

- -

Pour les versions de JavaScript antérieures ou égales à 1.7 :

- -
function(x) { return x * x; }
- -

Avec JavaScript 1.8 :

- -
function(x) x * x
- -

Cette syntaxe permet de ne pas utiliser les accolades et l'instruction return (ici implicite). En dehors de la concision syntaxique, cet opérateur n'apporte pas d'autre avantage.

- -

Exemples

- -

Un raccourci pour ajouter des gestionnaires d'événements :

- -
 document.addEventListener("click", function() false, true);
-
- -

On peut utiliser cette notation avec les fonctions introduites pour les tableaux avec JavaScript 1.6 :

- -
elems.some(function(elem) elem.type == "text");
-
- -

Compatibilité des navigateurs

- - - -

{{Compat("javascript.operators.expression_closures")}}

- -

Notes de compatibilité

- - - -

Voir aussi

- - -- cgit v1.2.3-54-g00ecf