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/01-getting-started/2-manuals-specifications/article.md
+1-5Lines changed: 1 addition & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,11 +12,7 @@ Une nouvelle version de la spécification est publiée chaque année. La derniè
12
12
13
13
Pour en savoir plus sur les fonctionnalités à venir, y compris celles qui sont "presque standards" (appelées aussi "stage 3"), vous pouvez consulter les propositions à cette adresse : <https://github.com/tc39/proposals>.
14
14
15
-
<<<<<<< HEAD
16
-
Si vous développez spécifiquement pour le navigateur, il existe d’autres spécifications couvertes dans la [seconde partie](info:browser-environment) du tutoriel.
17
-
=======
18
-
Also, if you're developing for the browser, then there are other specifications covered in the [second part](info:browser-environment) of the tutorial.
19
-
>>>>>>> 7533c719fbf62ba57188d6d51fe4c038b282bd0c
15
+
De plus, si vous développez pour le navigateur, d'autres spécifications sont couvertes dans la [seconde partie](info:browser-environment) du tutoriel.
Copy file name to clipboardExpand all lines: 1-js/02-first-steps/11-logical-operators/article.md
+1-5Lines changed: 1 addition & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,10 +1,6 @@
1
1
# Opérateurs logiques
2
2
3
-
<<<<<<< HEAD
4
-
Il y a trois opérateurs logiques en JavaScript : `||` (OR), `&&` (AND), `!` (NOT).
5
-
=======
6
-
There are four logical operators in JavaScript: `||` (OR), `&&` (AND), `!` (NOT), `??` (Nullish Coalescing). Here we cover the first three, the `??` operator is in the next article.
7
-
>>>>>>> 7533c719fbf62ba57188d6d51fe4c038b282bd0c
3
+
Il y a trois opérateurs logiques en JavaScript : `||` (OR), `&&` (AND), `!` (NOT), `??` (Coalescence des nulles). Nous couvrons ici les trois premiers, l'opérateur `??` est dans l'article suivant.
8
4
9
5
Bien qu'ils soient appelés "logiques", ils peuvent être appliqués à des valeurs de tout type, pas seulement booléennes. Le résultat peut également être de tout type.
Copy file name to clipboardExpand all lines: 1-js/02-first-steps/12-nullish-coalescing-operator/article.md
+13-63Lines changed: 13 additions & 63 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,28 +2,17 @@
2
2
3
3
[recent browser="new"]
4
4
5
-
<<<<<<< HEAD
6
-
Ici, dans cet article, nous dirons qu'une expression est `defined` lorsqu'elle n'est ni `null` ni `undefined`.
7
5
8
6
L'opérateur de coalescence des nuls est écrit sous la forme de deux points d'interrogation `??`.
9
7
8
+
Comme il traite `null` et `undefined` de la même manière, nous utiliserons un terme spécial ici, dans cet article. Nous dirons qu'une expression est "définie" lorsqu'elle n'est ni `null` ni `undefined`.
9
+
10
10
Le résultat de `a ?? b` est :
11
11
- si `a` est défini, alors `a`,
12
12
- si `a` n'est pas défini, alors `b`.
13
13
14
14
15
15
En d'autres termes, `??` renvoie le premier argument s'il n'est pas `nul/undefined`. Sinon, le second.
16
-
=======
17
-
The nullish coalescing operator is written as two question marks `??`.
18
-
19
-
As it treats `null` and `undefined` similarly, we'll use a special term here, in this article. We'll say that an expression is "defined" when it's neither `null` nor `undefined`.
20
-
21
-
The result of `a ?? b` is:
22
-
- if `a` is defined, then `a`,
23
-
- if `a` isn't defined, then `b`.
24
-
25
-
In other words, `??` returns the first argument if it's not `null/undefined`. Otherwise, the second one.
26
-
>>>>>>> 7533c719fbf62ba57188d6d51fe4c038b282bd0c
27
16
28
17
L'opérateur de coalescence des nuls n'est pas complètement nouveau. C'est juste une belle syntaxe pour obtenir la première valeur "defined" des deux.
29
18
@@ -33,29 +22,19 @@ Nous pouvons réécrire `result = a ?? b` en utilisant les opérateurs que nous
33
22
result = (a !==null&& a !==undefined) ? a : b;
34
23
```
35
24
36
-
<<<<<<< HEAD
37
-
Le cas d'utilisation courant de `??` est de fournir une valeur par défaut pour une variable potentiellement indéfinie.
38
-
39
-
Par exemple, ici nous montrons `Anonymous` si `user` n'est pas défini :
40
-
=======
41
-
Now it should be absolutely clear what `??` does. Let's see where it helps.
25
+
Maintenant, il devrait être absolument clair ce que fait `??`. Voyons où cela aide.
42
26
43
-
The common use case for`??`is to provide a default value for a potentially undefined variable.
27
+
Le cas d'utilisation courant de`??`est de fournir une valeur par défaut pour une variable potentiellement indéfinie.
44
28
45
-
For example, here we show `user` if defined, otherwise `Anonymous`:
46
-
>>>>>>> 7533c719fbf62ba57188d6d51fe4c038b282bd0c
29
+
Par exemple, ici nous affichons `user` s'il est défini, sinon `Anonymous` :
47
30
48
31
```js run
49
32
let user;
50
33
51
34
alert(user ??"Anonymous"); // Anonymous (user not defined)
52
35
```
53
36
54
-
<<<<<<< HEAD
55
-
Bien sûr, si `user` avait une valeur à l'exception de `null/undefined`, alors nous la verrions à la place :
56
-
=======
57
-
Here's the example with `user` assigned to a name:
Nous pouvons également utiliser une séquence de `??` pour sélectionner la première valeur dans une liste qui n'est pas `null/undefined`.
67
46
68
-
<<<<<<< HEAD
69
47
Disons que nous avons les données d'un utilisateur dans les variables `firstName`, `lastName` ou `nickName`. Tous peuvent être indéfinis, si l'utilisateur décide de ne pas entrer de valeur.
70
48
71
49
Nous aimerions afficher le nom d'utilisateur en utilisant l'une de ces variables, ou afficher "Anonymous" si toutes ne sont pas définies.
72
-
=======
73
-
Let's say we have a user's data in variables `firstName`, `lastName` or `nickName`. All of them may be not defined, if the user decided not to enter a value.
74
-
75
-
We'd like to display the user name using one of these variables, or show "Anonymous" if all of them aren't defined.
L'opérateur OR `||` existe depuis le début de JavaScript, donc les développeurs l'utilisaient à de telles fins depuis longtemps.
109
-
=======
110
-
Historically, the OR `||` operator was there first. It exists since the beginning of JavaScript, so developers were using it for such purposes for a long time.
111
-
>>>>>>> 7533c719fbf62ba57188d6d51fe4c038b282bd0c
80
+
Historiquement, l'opérateur OR `||` était là en premier. Il existe depuis le début de JavaScript, donc les développeurs l'utilisaient à de telles fins depuis longtemps.
112
81
113
82
D'un autre côté, l'opérateur de coalescence des nuls `??` n'a été ajouté à JavaScript que récemment, et la raison en était que les gens n'étaient pas tout à fait satisfaits de `||`.
114
83
@@ -129,33 +98,18 @@ alert(height || 100); // 100
129
98
alert(height ??100); // 0
130
99
```
131
100
132
-
<<<<<<< HEAD
133
-
- L'expression `height ||100` vérifie que "height" est une valeur erronée, et c'est vraiment le cas,
134
-
- donc le résultat est le deuxième argument, `100`.
101
+
- L'expression `height ||100` vérifie que `height` est une valeur fausse, et c'est `0`, elle est fausse en effet.
102
+
- donc le résultat de `||` est le deuxième argument, `100`.
135
103
- L'expression `height ??100` vérifie que `height` est `null/undefined`, et ce n'est pas le cas,
136
104
- donc le résultat est `height` "tel quel", c'est-à-dire `0`.
137
105
138
-
Si la hauteur zéro est une valeur valide, elle ne doit pas être remplacée par la valeur par défaut, alors`??` fait exactement ce qu'il faut.
106
+
En pratique, la hauteur zéro est souvent une valeur valide, qui ne doit pas être remplacée par la valeur par défaut. Alors`??` fait ce qu'il faut.
139
107
140
108
## Priorité
141
-
=======
142
-
- The `height ||100` checks `height` for being a falsy value, and it's `0`, falsy indeed.
143
-
- so the result of `||` is the second argument, `100`.
144
-
- The `height ??100` checks `height` for being `null/undefined`, and it's not,
145
-
- so the result is `height` "as is", that is `0`.
146
-
147
-
In practice, the zero height is often a valid value, that shouldn't be replaced with the default. So `??` does just the right thing.
148
-
>>>>>>> 7533c719fbf62ba57188d6d51fe4c038b282bd0c
149
-
150
-
La priorité de l'opérateur `??` est plutôt faible : `5` dans le [tableau MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence#Table).
151
109
152
-
<<<<<<< HEAD
153
-
La priorité de l'opérateur «??» est plutôt faible: «5» dans le [tableau MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence#Table). Ainsi, `??` est évalué avant `=` et `?`, Mais après la plupart des autres opérations, telles que `+`, `*`.
154
-
=======
155
-
The precedence of the `??` operator is about the same as `||`, just a bit lower. It equals `5` in the [MDN table](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence#Table), while `||` is `6`.
110
+
La priorité de l'opérateur `??` est à peu près la même que celle de `||`, juste un peu plus basse. Il est égal à `5` dans le [tableau MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence#Table), tandis que `||` est `6`.
156
111
157
-
That means that, just like `||`, the nullish coalescing operator `??` is evaluated before `=` and `?`, but after most other operations, such as `+`, `*`.
158
-
>>>>>>> 7533c719fbf62ba57188d6d51fe4c038b282bd0c
112
+
Cela signifie que, tout comme `||`, l'opérateur de coalescence des nuls `??` est évalué avant `=` et `?`, Mais après la plupart des autres opérations, telles que `+`, `*`.
159
113
160
114
Donc, si nous voulons choisir une valeur avec `??` dans une expression avec d'autres opérateurs, pensez à ajouter des parenthèses :
161
115
@@ -189,11 +143,7 @@ Le code ci-dessous déclenche une erreur de syntaxe :
189
143
let x =1&&2??3; // Syntax error
190
144
```
191
145
192
-
<<<<<<< HEAD
193
-
La limitation est sûrement discutable, mais elle a été ajoutée à la spécification du langage dans le but d'éviter les erreurs de programmation, car les gens commencent à passer à `??` à partir de `||`.
194
-
=======
195
-
The limitation is surely debatable, it was added to the language specification with the purpose to avoid programming mistakes, when people start to switch from `||` to `??`.
196
-
>>>>>>> 7533c719fbf62ba57188d6d51fe4c038b282bd0c
146
+
La limitation est sûrement discutable, mais elle a été ajoutée à la spécification du langage dans le but d'éviter les erreurs de programmation, quand les gens commencent à passer de `||` à `??`.
197
147
198
148
Utilisez des parenthèses explicites pour la contourner :
Copy file name to clipboardExpand all lines: 1-js/04-object-basics/02-object-copy/article.md
+2-6Lines changed: 2 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -187,13 +187,9 @@ let clone = Object.assign({}, user);
187
187
188
188
Cela copie toutes les propriétés de `user` dans l'objet vide et le retourne.
189
189
190
-
<<<<<<< HEAD
191
-
## Clonage imbriqué
192
-
=======
193
-
There are also other methods of cloning an object, e.g. using the [spread operator](info:rest-parameters-spread) `clone = {...user}`, covered later in the tutorial.
190
+
Il existe également d'autres méthodes de clonage d'un objet, par ex. en utilisant la [syntaxe spread](info:rest-parameters-spread) `clone = {...user}`, abordé plus loin dans le tutoriel.
194
191
195
-
## Nested cloning
196
-
>>>>>>> 7533c719fbf62ba57188d6d51fe4c038b282bd0c
192
+
## Clonage imbriqué
197
193
198
194
Jusqu'à maintenat on suppose que toutes les propriétés de `use` sont des primitives. Mais les propriétés peuvent être des références vers d'autres objets. Comment gèrer ces cas-là ?
Copy file name to clipboardExpand all lines: 1-js/04-object-basics/07-optional-chaining/article.md
+2-7Lines changed: 2 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -175,15 +175,10 @@ userGuest.admin?.(); // nothing (no such method)
175
175
*/!*
176
176
```
177
177
178
-
<<<<<<<HEAD
179
178
180
-
Ici, dans les deux lignes, nous utilisons d'abord le point (`user1.admin`) pour obtenir la propriété `admin`, car l'objet utilisateur doit exister, donc il peut être lu en toute sécurité.
181
-
Puis `?.()`Vérifie la partie gauche : si la fonction admin existe, alors elle s'exécute (c'est le cas pour `user1`). Sinon (pour `user2`) l'évaluation s'arrête sans erreur.
182
-
=======
183
-
Here, in both lines we first use the dot (`userAdmin.admin`) to get `admin` property, because we assume that the user object exists, so it's safe read from it.
179
+
Ici, dans les deux lignes, nous utilisons d'abord le point (`userAdmin.admin`) pour obtenir la propriété `admin`, car l'objet utilisateur doit exister, donc il peut être lu en toute sécurité.
184
180
185
-
Then `?.()` checks the left part: if the admin function exists, then it runs (that's so for`userAdmin`). Otherwise (for`userGuest`) the evaluation stops without errors.
186
-
>>>>>>>7533c719fbf62ba57188d6d51fe4c038b282bd0c
181
+
Puis `?.()`Vérifie la partie gauche : si la fonction admin existe, alors elle s'exécute (c'est le cas pour `userAdmin`). Sinon (pour `userGuest`) l'évaluation s'arrête sans erreur.
187
182
188
183
189
184
La syntaxe `?.[]` Fonctionne également, si nous voulons utiliser des crochets `[]` pour accéder aux propriétés au lieu du point `.`. Similaire aux cas précédents, il permet de lire en toute sécurité une propriété à partir d'un objet qui peut ne pas exister.
Cette façon de copier un objet est beaucoup plus courte que `let objCopy = Object.assign({}, obj);` ou pous un tableau `let arrCopy = Object.assign([], arr);` nous préférons donc l'utiliser chaque fois que nous le pouvons.
291
-
=======
292
-
This way of copying an object is much shorter than `let objCopy = Object.assign({}, obj)` or for an array `let arrCopy = Object.assign([], arr)` so we prefer to use it whenever we can.
293
-
>>>>>>> 7533c719fbf62ba57188d6d51fe4c038b282bd0c
275
+
Cette façon de copier un objet est beaucoup plus courte que `let objCopy = Object.assign({}, obj)` ou pour un tableau `let arrCopy = Object.assign([], arr);` nous préférons donc l'utiliser chaque fois que nous le pouvons.
0 commit comments