You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 1-js/04-object-basics/02-garbage-collection/article.md
+3-21Lines changed: 3 additions & 21 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -153,19 +153,11 @@ L'algorithme de base de la récupération de place (garbage collection) s'appell
153
153
154
154
Les étapes suivantes du "ramasse-miettes" (garbage collection) sont régulièrement effectuées :
155
155
156
-
<<<<<<< HEAD
157
-
- Le ramasse-miettes prend des racines et les "marque" (se souvient).
156
+
- Le ramasse-miettes prend les racines et les "marque" (se souvient).
158
157
- Ensuite, il visite et "marque" toutes les références.
159
158
- Ensuite, il visite les objets marqués et marque *leurs* références. Tous les objets visités sont mémorisés afin de ne pas visiter le même objet deux fois dans le futur.
160
159
- … Et ainsi de suite tant qu'il y a des références non consultées (accessibles depuis les racines).
161
160
- Tous les objets sont supprimés sauf ceux qui sont marqués.
162
-
=======
163
-
- The garbage collector takes roots and "marks" (remembers) them.
164
-
- Then it visits and "marks" all references from them.
165
-
- Then it visits marked objects and marks *their* references. All visited objects are remembered, so as not to visit the same object twice in the future.
166
-
- ...And so on until every reachable (from the roots) references are visited.
167
-
- All objects except marked ones are removed.
168
-
>>>>>>> 71ff8f81b05e2438a3c56507888e06c528a71182
169
161
170
162
Par exemple, imaginons notre structure d'objet ressembler à ceci :
171
163
@@ -189,27 +181,17 @@ Désormais, les objets qui n'ont pas pu être visités sont considérés comme i
189
181
190
182

191
183
192
-
<<<<<<< HEAD
193
-
C’est le concept de la façon dont le garbage collector fonctionne.
184
+
Nous pouvons également imaginer que le processus consiste à renverser un énorme seau de peinture à la racine, qui traverse toutes les références et marque tous les objets accessibles. Les non marqués sont ensuite supprimés.
194
185
195
-
Les moteurs JavaScript appliquent de nombreuses optimisations pour accélérer l’exécution et ne pas affecter l’exécution.
196
-
=======
197
-
We can also imagine the process as spilling a huge bucket of paint from the roots, that flows through all references and marks all reachable objects. The unmarked ones are then removed.
198
-
199
-
That's the concept of how garbage collection works. JavaScript engines apply many optimizations to make it run faster and not affect the execution.
200
-
>>>>>>> 71ff8f81b05e2438a3c56507888e06c528a71182
186
+
C'est le concept de la façon dont la garbage collection fonctionne. Les moteurs JavaScript appliquent de nombreuses optimisations pour accélérer l’exécution et ne pas affecter l’exécution.
201
187
202
188
Certaines des optimisations :
203
189
204
190
-**Collection générationnelle** -- les objets sont divisés en deux ensembles : les "nouveaux" et les "anciens". De nombreux objets apparaissent, font leur travail et meurent rapidement, ils peuvent être nettoyés de manière agressive. Ceux qui survivent assez longtemps deviennent "vieux" et sont examinés moins souvent.
205
191
-**Collection incrémentale** -- s'il y a beaucoup d'objets et que nous essayons de circuler et de marquer le jeu d'objets entier en même temps, cela peut prendre un certain temps et introduire des retards visibles dans l'exécution. Le moteur essaie donc de scinder le garbage collection (ramassage de miettes) en morceaux. Ensuite, ces parties sont exécutées une par une, séparément. Cela nécessite une comptabilité supplémentaire entre elles pour suivre les changements, mais nous avons beaucoup de petits retards au lieu d'un gros.
206
192
-**Collection par inactivité** -- le garbage collector tente de s'exécuter uniquement lorsque le processeur (CPU) est inactif, afin de réduire les conséquences sur l'exécution.
207
193
208
-
<<<<<<< HEAD
209
194
Il existe d'autres optimisations et variantes d'algorithmes de récupération de place. Même si je souhaite les décrire ici, je dois m'abstenir, car différents moteurs implémentent différentes techniques et ajustements. Et, ce qui est encore plus important, les choses changent à mesure que les moteurs se développent. Donc aller plus loin de manière plus poussée, sans réel besoin, n’en vaut probablement pas la peine. À moins, bien sûr, que ce soit une question qui vous intéresse vraiment, vous trouverez quelques liens pour vous ci-dessous.
210
-
=======
211
-
There exist other optimizations and flavours of garbage collection algorithms. As much as I'd like to describe them here, I have to hold off, because different engines implement different tweaks and techniques. And, what's even more important, things change as engines develop, so studying deeper "in advance", without a real need is probably not worth that. Unless, of course, it is a matter of pure interest, then there will be some links for you below.
Copy file name to clipboardExpand all lines: 1-js/05-data-types/09-keys-values-entries/article.md
+1-7Lines changed: 1 addition & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -98,10 +98,4 @@ let doublePrices = Object.fromEntries(
98
98
alert(doublePrices.meat); // 8
99
99
```
100
100
101
-
<<<<<<< HEAD
102
-
Cela peut sembler difficile au premier abord, mais cela devient facile à comprendre après l’avoir utilisé une ou deux fois.
103
-
104
-
De cette façon, nous pouvons créer de puissants one-liners pour des transformations plus complexes. Il est important de préserver l’équilibre pour que le code reste assez simple à comprendre.
105
-
=======
106
-
It may look difficult from the first sight, but becomes easy to understand after you use it once or twice. We can make powerful chains of transforms this way.
107
-
>>>>>>> 71ff8f81b05e2438a3c56507888e06c528a71182
101
+
Cela peut sembler difficile au premier abord, mais il devient facile à comprendre après l’avoir utilisé une ou deux fois. Nous pouvons faire de puissantes chaînes de transformations de cette façon.
Copy file name to clipboardExpand all lines: 1-js/06-advanced-functions/01-recursion/article.md
+3-7Lines changed: 3 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -185,17 +185,13 @@ Voici la pile de contexte lorsque nous sommes entrés dans le sous-appel `pow(2,
185
185
186
186
Le nouveau contexte d'exécution actuel est en haut (et en gras) et les contextes précédemment mémorisés sont en dessous.
187
187
188
-
<<<<<<< HEAD
189
-
Quand on termine le sous-appel -- il est facile de reprendre le contexte précédent, car il conserve les deux variables et l'emplacement exact du code où il s'est arrêté. Ici, sur la photo, nous utilisons le mot "line", mais bien sûr, il est plus précis.
190
-
=======
191
-
When we finish the subcall -- it is easy to resume the previous context, because it keeps both variables and the exact place of the code where it stopped.
188
+
Quand on termine le sous-appel -- il est facile de reprendre le contexte précédent, car il conserve les deux variables et l'emplacement exact du code où il s'est arrêté.
192
189
193
190
```smart
194
-
Here in the picture we use the word "line", as our example there's only one subcall in line, but generally a single line of code may contain multiple subcalls, like`pow(…) + pow(…) + somethingElse(…)`.
191
+
Ici, dans l'image, nous utilisons le mot "ligne", comme dans notre exemple, il n'y a qu'un seul sous-appel en ligne, mais généralement une seule ligne de code peut contenir plusieurs sous-appels, comme`pow(…) + pow(…) + somethingElse(…)`.
195
192
196
-
So it would be more precise to say that the execution resumes "immediately after the subcall".
193
+
Il serait donc plus précis de dire que l'exécution reprend "immédiatement après le sous-appel".
Copy file name to clipboardExpand all lines: 1-js/08-prototypes/03-native-prototypes/article.md
-8Lines changed: 0 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -189,16 +189,8 @@ L'emprunt des méthodes est flexible, cela permet de mélanger la fonctionnalit
189
189
190
190
## Résumé
191
191
192
-
<<<<<<< HEAD
193
192
- Tous les objets intégrés suivent le même schéma:
194
193
- Les méthodes sont stockées dans le prototype (`Array.prototype`, `Object.prototype`, `Date.prototype`, etc.).
195
194
- L'objet lui-même ne stocke que les données (éléments de tableau, propriétés de l'objet, date).
196
195
- Les primitives stockent également des méthodes dans des prototypes d'objets wrapper: `Number.prototype`, `String.prototype`, `Boolean.prototype`. Seuls `undefined` et `null` n'ont pas d'objets wrapper.
197
196
- Les prototypes intégrés peuvent être modifiés ou remplis avec de nouvelles méthodes. Mais il n'est pas recommandé de les changer. La seule cause possible est probablement l’ajout d’un nouveau standard, mais pas encore pris en charge par la méthode JavaScript du moteur.
198
-
=======
199
-
- All built-in objects follow the same pattern:
200
-
- The methods are stored in the prototype (`Array.prototype`, `Object.prototype`, `Date.prototype` etc).
201
-
- The object itself stores only the data (array items, object properties, the date).
202
-
- Primitives also store methods in prototypes of wrapper objects: `Number.prototype`, `String.prototype`, `Boolean.prototype`. Only `undefined` and `null` do not have wrapper objects.
203
-
- Built-in prototypes can be modified or populated with new methods. But it's not recommended to change them. Probably the only allowable case is when we add-in a new standard, but not yet supported by the engine JavaScript method.
- La propriété `"prototype"` d'une fonction constructeur fonctionne depuis très longtemps.
80
75
- Plus tard dans l'année 2012 : `Object.create` est apparu dans le standard. Cela permettait de créer des objets avec le prototype donné, mais ne permettait pas d'y accéder/muter. Les navigateurs ont donc implémenté un accesseur non standard `__proto__` qui permettait d'accéder/muter un prototype à tout moment.
81
76
- Plus tard, dans l'année 2015 : `Object.setPrototypeOf` et `Object.getPrototypeOf` ont été ajoutés dans le standard pour exécuter la même fonctionnalité que `__proto__`. Comme `__proto__` était implémenté de facto partout, il était en quelque sorte obsolète et passait à l'Annexe B de la norme, qui est facultative pour les environnements autres que les navigateurs.
82
-
=======
83
-
- The `"prototype"` property of a constructor function has worked since very ancient times.
84
-
- Later, in the year 2012, `Object.create` appeared in the standard. It gave the ability to create objects with a given prototype, but did not provide the ability to get/set it. So browsers implemented the non-standard `__proto__` accessor that allowed the user to get/set a prototype at any time.
85
-
- Later, in the year 2015, `Object.setPrototypeOf` and `Object.getPrototypeOf` were added to the standard, to perform the same functionality as `__proto__`. As `__proto__` was de-facto implemented everywhere, it was kind-of deprecated and made its way to the Annex B of the standard, that is: optional for non-browser environments.
86
-
>>>>>>> 71ff8f81b05e2438a3c56507888e06c528a71182
87
77
88
78
Pour l'instant, nous avons tous ces moyens à notre disposition.
Copy file name to clipboardExpand all lines: 1-js/09-classes/01-class/article.md
+4-16Lines changed: 4 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -89,13 +89,9 @@ Ce que `class User {...}` la construction fait en réalité est de:
89
89
1. Créer une fonction nommée `User`, qui devient le résultat de la déclaration de la classe. Le code de la fonction est tirée de la méthode `constructor` (considérée comme étant vide au cas ou cette méthode n'est pas écrite).
90
90
2. Garde les méthodes de la classe, telle que `sayHi`, dans `User.prototype`.
91
91
92
-
<<<<<<< HEAD
93
-
Apres cela, pour les nouveaux objets `new User`, lorsqu'on appelle une méthode, elle est prise à partir du prototype, ainsi qu'on vient juste de décrire dans le chapitre <info:function-prototype>. Ainsi l'objet a accès aux méthodes de la classe.
94
-
=======
95
-
After `new User` object is created, when we call its method, it's taken from the prototype, just as described in the chapter <info:function-prototype>. So the object has access to class methods.
92
+
Après la création de `new User`, lorsque nous appelons sa méthode, elle est extraite du prototype, comme décrit dans le chapitre <info:function-prototype>. Donc, l'objet a accès aux méthodes de classe.
96
93
97
-
We can illustrate the result of `class User` declaration as:
98
-
>>>>>>> 71ff8f81b05e2438a3c56507888e06c528a71182
94
+
Nous pouvons illustrer le résultat de la déclaration de `class User` par :
99
95
100
96
Nous pouvons illustrer le résultat de la déclaration de `class User` ainsi:
101
97

@@ -147,19 +143,11 @@ user.sayHi();
147
143
148
144
Le résultat de cette définition est à peu près la même chose. Donc, il y a bien raison de vouloir considérer `class` comme pouvant être un sucre syntaxique pour définir un constructeur ensemble avec ses méthodes de prototype.
149
145
150
-
<<<<<<< HEAD
151
-
Bien qu’il y ait des différences importantes.
152
-
=======
153
-
Still, there are important differences.
154
-
>>>>>>> 71ff8f81b05e2438a3c56507888e06c528a71182
146
+
Cependant, il existe des différences importantes.
155
147
156
148
1. Tout d'abord, une fonction crée par une `classe` est labélisé par une propriété interne spéciale nommée `[[FunctionKind]]:"classConstructor"`. Donc ce n'est pas tout à fait la même chose que de la créer manuellement.
157
149
158
-
<<<<<<< HEAD
159
-
Contrairement à une fonction normale, un constructeur de class doit être invoquée avec `new`:
160
-
=======
161
-
And unlike a regular function, a class constructor must be called with `new`:
162
-
>>>>>>> 71ff8f81b05e2438a3c56507888e06c528a71182
150
+
Contrairement à une fonction normale, un constructeur de class doit être invoquée avec `new` :
Copy file name to clipboardExpand all lines: 1-js/09-classes/02-class-inheritance/article.md
-4Lines changed: 0 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -131,11 +131,7 @@ class Rabbit extends Animal {
131
131
}
132
132
```
133
133
134
-
<<<<<<< HEAD
135
134
...Mais en général, nous ne voulons pas remplacer totalement une méthode parente, mais plutôt construire dessus, modifier ou étendre ses fonctionnalités. Nous faisons quelque chose dans notre méthode, mais appelons la méthode parente avant / après ou dans le processus.
136
-
=======
137
-
...But usually we don't want to totally replace a parent method, but rather to build on top of it to tweak or extend its functionality. We do something in our method, but call the parent method before/after it or in the process.
138
-
>>>>>>> 71ff8f81b05e2438a3c56507888e06c528a71182
139
135
140
136
Les classes fournissent le mot clé `"super"` pour cela.
Copy file name to clipboardExpand all lines: 1-js/09-classes/05-extend-natives/article.md
+1-9Lines changed: 1 addition & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -21,11 +21,7 @@ alert(filteredArr); // 10, 50
21
21
alert(filteredArr.isEmpty()); // false
22
22
```
23
23
24
-
<<<<<<< HEAD
25
-
Noter une chose très intéressante. Les méthodes intégrées telles que `filter`, `map` et autres renvoient des nouveaux objets exactement du type hérité `PowerArray`. Leur implémentation interne utilise la propriété d'objet `constructor` pour cela.
26
-
=======
27
-
Please note a very interesting thing. Built-in methods like `filter`, `map` and others -- return new objects of exactly the inherited type `PowerArray`. Their internal implementation uses the object's `constructor` property for that.
28
-
>>>>>>> 71ff8f81b05e2438a3c56507888e06c528a71182
24
+
Notez une chose très intéressante. Les méthodes intégrées telles que `filter`, `map` et autres renvoient des nouveaux objets exactement du type hérité `PowerArray`. Leur implémentation interne utilise la propriété d'objet `constructor` pour cela.
29
25
30
26
Dans l'exemple ci-dessus,
31
27
```js
@@ -78,11 +74,7 @@ Les objets intégrés ont leurs propres méthodes statiques, par exemple `Object
78
74
79
75
Comme nous le savons déjà, les classes natives s'étendent les uns des autres. Par exemple, `Array` extends `Object`.
80
76
81
-
<<<<<<< HEAD
82
77
Normalement, lorsqu'une classe en étend une autre, les méthodes statiques et non statiques sont héritées. Cela a été expliqué en détail dans le chapitre [](info:static-properties-methods#statics-and-inheritance).
83
-
=======
84
-
Normally, when one class extends another, both static and non-static methods are inherited. That was thoroughly explained in the article [](info:static-properties-methods#statics-and-inheritance).
85
-
>>>>>>> 71ff8f81b05e2438a3c56507888e06c528a71182
86
78
87
79
Mais les classes intégrées sont une exception. Ils n'héritent pas les méthodes statiques les uns des autres.
0 commit comments