Skip to content

Commit 9c0a905

Browse files
authored
Merge pull request #133 from HachemiH/master
Conflicts fixed after sync with upstream @ 5b19579
2 parents e5a65e9 + 2a02e36 commit 9c0a905

File tree

4 files changed

+42
-83
lines changed
  • 1-js
  • 2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/2-hoverintent/source.view

4 files changed

+42
-83
lines changed

1-js/02-first-steps/06-type-conversions/article.md

Lines changed: 1 addition & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
11
# Les conversions de types
22

3-
<<<<<<< HEAD
43
La plupart du temps, les opérateurs et les fonctions convertissent automatiquement les valeurs qui leur sont attribuées dans le bon type.
5-
=======
6-
Most of the time, operators and functions automatically convert the values given to them to the right type.
7-
>>>>>>> 5b195795da511709faf79a4d35f9c5623b6dbdbd
84

95
Par exemple, `alert` convertit automatiquement toute valeur en chaîne de caractères pour l'afficher. Les opérations mathématiques convertissent les valeurs en nombres.
106

@@ -85,22 +81,7 @@ alert( Number(false) ); // 0
8581

8682
Veuillez noter que `null` et `undefined` se comportent différemment ici : `null` devient un zéro, alors qu'`undefined` devient `NaN`.
8783

88-
<<<<<<< HEAD
89-
````smart header="L\'addition \"+\" concatène les chaînes de caractères"
90-
Presque toutes les opérations mathématiques convertissent les valeurs en nombres. A l'exception notable de l'addition `+`. Si l'une des valeurs ajoutées est une chaîne de caractères, une autre est également convertie en chaîne de caractères.
91-
92-
Puis il les concatènes (joint) :
93-
94-
```js run
95-
alert( 1 + '2' ); // '12' (chaîne de caractères à droite)
96-
alert( '1' + 2 ); // '12' (chaîne de caractères à gauche)
97-
```
98-
99-
Cela ne se produit que lorsque l'un des arguments est une chaîne de caractères. Sinon, les valeurs sont converties en nombres.
100-
````
101-
=======
102-
Most mathematical operators also perform such conversion, we'll see that in the next chapter.
103-
>>>>>>> 5b195795da511709faf79a4d35f9c5623b6dbdbd
84+
La plupart des opérateurs mathématiques effectuent également une telle conversion, nous le verrons dans le chapitre suivant.
10485

10586
## Boolean Conversion
10687

1-js/02-first-steps/08-comparison/1-comparison-questions/solution.md

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -12,20 +12,10 @@ null === +"\n0\n" → false
1212

1313
Quelques raisons :
1414

15-
<<<<<<< HEAD
1615
1. Évidemment, c'est vrai.
17-
2. Comparaison du dictionnaire, donc fausse.
18-
3. Encore une fois, la comparaison du dictionnaire, le premier caractère de `"2"` est plus grand que le premier caractère de` "1"`.
16+
2. Comparaison du dictionnaire, donc fausse. `"a"` est plus petit que `"p"`.
17+
3. Encore une fois, comparaison du dictionnaire, le premier caractère de `"2"` est plus grand que le premier caractère de` "1"`.
1918
4. Les valeurs `null` et `undefined` sont exclusivement égale entre elles.
2019
5. L'égalité stricte est stricte. Des types différents des deux côtés conduisent à `false`.
21-
6. Voir `(4)`, `null` n'est égale qu'à `undefined`.
20+
6. Similaire à `(4)`, `null` n'est égale qu'à `undefined`.
2221
7. Egalité stricte de différents types.
23-
=======
24-
1. Obviously, true.
25-
2. Dictionary comparison, hence false. `"a"` is smaller than `"p"`.
26-
3. Again, dictionary comparison, first char of `"2"` is greater than the first char of `"1"`.
27-
4. Values `null` and `undefined` equal each other only.
28-
5. Strict equality is strict. Different types from both sides lead to false.
29-
6. Similar to `(4)`, `null` only equals `undefined`.
30-
7. Strict equality of different types.
31-
>>>>>>> 5b195795da511709faf79a4d35f9c5623b6dbdbd

1-js/07-object-properties/01-property-descriptors/article.md

Lines changed: 36 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -66,11 +66,7 @@ Object.defineProperty(obj, propertyName, descriptor)
6666
: L'objet et sa propriété pour appliquer le descripteur.
6767

6868
`descriptor`
69-
<<<<<<< HEAD
70-
: Descripteur de propriété à appliquer.
71-
=======
72-
: Property descriptor object to apply.
73-
>>>>>>> 5b195795da511709faf79a4d35f9c5623b6dbdbd
69+
: Descripteur de propriété d'objet à appliquer.
7470

7571
Si la propriété existe, `defineProperty` met à jour ses attributs. Sinon, il crée la propriété avec la valeur et les descripteurs donnés. Dans ce cas, si aucun drapeau n'est fourni, il est supposé `false`.
7672

@@ -81,7 +77,7 @@ let user = {};
8177

8278
*!*
8379
Object.defineProperty(user, "name", {
84-
value: "John"
80+
value: "John"
8581
});
8682
*/!*
8783

@@ -90,14 +86,14 @@ let descriptor = Object.getOwnPropertyDescriptor(user, 'name');
9086
alert( JSON.stringify(descriptor, null, 2 ) );
9187
/*
9288
{
93-
"value": "John",
89+
"value": "John",
9490
*!*
95-
"writable": false,
96-
"enumerable": false,
97-
"configurable": false
91+
"writable": false,
92+
"enumerable": false,
93+
"configurable": false
9894
*/!*
9995
}
100-
*/
96+
*/
10197
```
10298

10399
Comparez-le avec `user.name` "normalement créé" ci-dessus: maintenant tous les attributs sont falsy. Si ce n'est pas ce que nous voulons, nous ferions mieux de leur attribuer la valeur `true` dans `descriptor`.
@@ -110,12 +106,12 @@ Rendons `user.name` en lecture seule (ne peut pas être réaffecté) en modifian
110106

111107
```js run
112108
let user = {
113-
name: "John"
109+
name: "John"
114110
};
115111

116112
Object.defineProperty(user, "name", {
117113
*!*
118-
writable: false
114+
writable: false
119115
*/!*
120116
});
121117

@@ -137,10 +133,10 @@ let user = { };
137133

138134
Object.defineProperty(user, "name", {
139135
*!*
140-
value: "John",
141-
// pour les nouvelles propriétés, nous devons lister explicitement ce qui est vrai
142-
enumerable: true,
143-
configurable: true
136+
value: "John",
137+
// pour les nouvelles propriétés, nous devons lister explicitement ce qui est vrai
138+
enumerable: true,
139+
configurable: true
144140
*/!*
145141
});
146142

@@ -156,10 +152,10 @@ Normalement, un `toString` intégré pour les objets n'est pas énumérable, il
156152

157153
```js run
158154
let user = {
159-
name: "John",
160-
toString() {
161-
return this.name;
162-
}
155+
name: "John",
156+
toString() {
157+
return this.name;
158+
}
163159
};
164160

165161
// Par défaut, nos deux propriétés sont répertoriées:
@@ -170,15 +166,15 @@ Si nous n'aimons pas cela, alors nous pouvons définir `enumerable: false`. Ensu
170166

171167
```js run
172168
let user = {
173-
name: "John",
174-
toString() {
175-
return this.name;
176-
}
169+
name: "John",
170+
toString() {
171+
return this.name;
172+
}
177173
};
178174

179175
Object.defineProperty(user, "toString", {
180176
*!*
181-
enumerable: false
177+
enumerable: false
182178
*/!*
183179
});
184180

@@ -208,10 +204,10 @@ let descriptor = Object.getOwnPropertyDescriptor(Math, 'PI');
208204
alert( JSON.stringify(descriptor, null, 2 ) );
209205
/*
210206
{
211-
"value": 3.141592653589793,
212-
"writable": false,
213-
"enumerable": false,
214-
"configurable": false
207+
"value": 3.141592653589793,
208+
"writable": false,
209+
"enumerable": false,
210+
"configurable": false
215211
}
216212
*/
217213
```
@@ -237,9 +233,9 @@ Ici, nous faisons de `user.name` une constante "scellée pour toujours":
237233
let user = { };
238234

239235
Object.defineProperty(user, "name", {
240-
value: "John",
241-
writable: false,
242-
configurable: false
236+
value: "John",
237+
writable: false,
238+
configurable: false
243239
});
244240

245241
*!*
@@ -266,19 +262,19 @@ La syntaxe est la suivante:
266262

267263
```js
268264
Object.defineProperties(obj, {
269-
prop1: descriptor1,
270-
prop2: descriptor2
271-
// ...
265+
prop1: descriptor1,
266+
prop2: descriptor2
267+
// ...
272268
});
273269
```
274270

275271
Par exemple:
276272

277273
```js
278274
Object.defineProperties(user, {
279-
name: { value: "John", writable: false },
280-
surname: { value: "Smith", writable: false },
281-
// ...
275+
name: { value: "John", writable: false },
276+
surname: { value: "Smith", writable: false },
277+
// ...
282278
});
283279
```
284280

@@ -298,7 +294,7 @@ Normalement, lorsque nous clonons un objet, nous utilisons une affectation pour
298294

299295
```js
300296
for (let key in user) {
301-
clone[key] = user[key]
297+
clone[key] = user[key]
302298
}
303299
```
304300

2-ui/3-event-details/3-mousemove-mouseover-mouseout-mouseenter-mouseleave/2-hoverintent/source.view/hoverIntent.js

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
1-
'use strict';
1+
"use strict";
22

33
// Voici une ébauche rapide de la classe
44
// avec les chose dont vous aurez besoin de toute manière
55
class HoverIntent {
6-
76
constructor({
87
sensitivity = 0.1, // si la vitesse est de moins de 0.1px/ms cela signifie "survolez un élément"
98
interval = 100, // mesurer la vitesse de la souris une fois par 100ms: calculer les distance entre les points précédents et suivants
@@ -27,7 +26,6 @@ class HoverIntent {
2726
elem.addEventListener("mouseout", this.onMouseOut);
2827

2928
// continuer apartir d’ici
30-
3129
}
3230

3331
onMouseOver(event) {
@@ -42,14 +40,8 @@ class HoverIntent {
4240
/* ... */
4341
}
4442

45-
4643
destroy() {
47-
<<<<<<< HEAD
4844
/* votre code pour "désactiver" la fonctionnalité, enlever tous les gestionnaires d’évènements*/
49-
=======
50-
/* your code to "disable" the functionality, remove all handlers */
51-
/* it's needed for the tests to work */
52-
>>>>>>> 5b195795da511709faf79a4d35f9c5623b6dbdbd
45+
/* il est nécessaire que les tests fonctionnent */
5346
}
54-
5547
}

0 commit comments

Comments
 (0)