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/02-first-steps/05-types/article.md
+10-42Lines changed: 10 additions & 42 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -47,25 +47,16 @@ Outre les nombres réguliers, il existe des "valeurs numériques spéciales" qui
47
47
alert( "pas un nombre" / 2 ); // NaN, une telle division est erronée
48
48
```
49
49
50
-
<<<<<<<HEAD
51
50
`NaN` est contagieux. Toute autre opération sur `NaN` donnerait un `NaN`:
52
51
53
-
```js run
54
-
alert( "pas un nombre" / 2 + 5 ); // NaN
55
-
```
56
-
57
-
Donc, s'il y a `NaN` quelque part dans une expression mathématique, elle se propage à l'ensemble du résultat.
58
-
=======
59
-
`NaN` is sticky. Any further mathematical operation on `NaN` returns `NaN`:
60
-
61
52
```js run
62
53
alert( NaN + 1 ); // NaN
63
54
alert( 3 * NaN ); // NaN
64
55
alert( "not a number" / 2 - 1 ); // NaN
65
56
```
66
57
67
-
So, if there's a `NaN` somewhere in a mathematical expression, it propagates to the whole result (there's only one exception to that:`NaN ** 0`is`1`).
68
-
>>>>>>>71da17e5960f1c76aad0d04d21f10bc65318d3f6
58
+
Donc, s'il y a `NaN` quelque part dans une expression mathématique, il se propage à l'ensemble du résultat (il n'y a qu'une seule exception :`NaN ** 0`vaut`1`).
59
+
69
60
70
61
```smart header="Les opérations mathématiques sont sûres"
71
62
Faire des maths est sans danger en JavaScript. Nous pouvons faire n'importe quoi : diviser par zéro, traiter les chaînes non numériques comme des nombres, etc.
@@ -225,18 +216,8 @@ Le type `symbol` est utilisé pour créer des identificateurs uniques pour les o
225
216
226
217
L'opérateur `typeof` renvoie le type de l'argument. Il est utile lorsqu'on souhaite traiter différemment les valeurs de différents types ou de faire une vérification rapide.
227
218
228
-
<<<<<<< HEAD
229
-
Il supporte deux formes de syntaxe :
230
-
231
-
1. Sous forme d'opérateur : `typeof x`.
232
-
2. En style de fonction : `typeof(x)`.
233
-
234
-
En d'autres termes, cela fonctionne à la fois avec ou sans parenthèses. Le résultat est le même.
235
219
236
220
L'appel `typeof x` renvoie une chaîne de caractères avec le nom du type :
237
-
=======
238
-
A call to `typeof x` returns a string with the type name:
Les trois dernières lignes peuvent nécessiter des explications supplémentaires :
268
249
269
250
1. `Math` est un objet interne au langage qui fournit des opérations mathématiques. Nous allons l'apprendre dans le chapitre <info:number>. Ici, il sert uniquement comme exemple d'un objet.
270
-
2. Le résultat de `typeofnull` est `"object"`. C'est une erreur officiellement reconnue dans `typeof`, conservée pour compatibilité. Bien sûr, `null` n'est pas un objet. C'est une valeur spéciale avec un type distinct qui lui est propre.
251
+
2. Le résultat de `typeofnull` est `"object"`. C'est une erreur officiellement reconnue dans `typeof`, datant des premiers jours de JavaScript et conservée pour compatibilité. Bien sûr, `null` n'est pas un objet. C'est une valeur spéciale avec un type distinct qui lui est propre. Le comportement de `typeof` est incorrect ici.
271
252
3. Le résultat de `typeof alert` est `"function"`, car `alert` est une fonction. Nous étudierons les fonctions dans les chapitres suivants, et nous verrons qu’il n’y a pas de type "fonction" en JavaScript. Les fonctions appartiennent au type `object`. Mais `typeof` les traite différemment, en retournant `"fonction"`. Cela vient également des débuts de JavaScript. Techniquement ce n’est pas tout à fait correct, mais très pratique à l'usage.
272
253
273
-
<<<<<<< HEAD
274
254
275
-
## Résumé
276
-
=======
277
-
1. `Math` is a built-in object that provides mathematical operations. We will learn it in the chapter <info:number>. Here, it serves just as an example of an object.
278
-
2. The result of `typeofnull` is `"object"`. That's an officially recognized error in `typeof`, coming from very early days of JavaScript and kept for compatibility. Definitely, `null` is not an object. It is a special value with a separate type of its own. The behavior of `typeof` is wrong here.
279
-
3. The result of `typeof alert` is `"function"`, because `alert` is a function. We'll study functions in the next chapters where we'll also see that there's no special "function" type in JavaScript. Functions belong to the object type. But `typeof` treats them differently, returning `"function"`. That also comes from the early days of JavaScript. Technically, such behavior isn't correct, but can be convenient in practice.
280
255
281
-
```smart header="The `typeof(x)` syntax"
282
-
You may also come across another syntax:`typeof(x)`. It's the same as `typeof x`.
256
+
```smart header="La syntaxe `typeof(x)`"
257
+
Vous pouvez également rencontrer une autre syntaxe :`typeof(x)`. C'est la même chose que `typeof x`.
283
258
284
-
To put it clear: `typeof` is an operator, not a function. The parentheses here aren't a part of`typeof`. It's the kind of parentheses used for mathematical grouping.
259
+
Pour être clair : `typeof` est un opérateur, pas une fonction. Les parenthèses ici ne font pas partie de `typeof`. C'est le genre de parenthèses utilisées pour le regroupement mathématique.
285
260
286
-
Usually, such parentheses contain a mathematical expression, such as `(2 + 2)`, but here they contain only one argument `(x)`. Syntactically, they allow to avoid a space between the `typeof` operator and its argument, and some people like it.
261
+
Habituellement, ces parenthèses contiennent une expression mathématique, telle que`(2 + 2)`, mais ici elles ne contiennent qu'un seul argument `(x)`. Syntaxiqement, ils permettent d'éviter un espace entre l'opérateur `typeof` et son argument, et certains aiment ça.
287
262
288
-
Some people prefer `typeof(x)`, although the `typeof x` syntax is much more common.
263
+
Certaines personnes préfèrent `typeof(x)`, bien que la syntaxe `typeof x` soit beaucoup plus courante.
289
264
```
290
265
291
-
## Summary
292
-
>>>>>>> 71da17e5960f1c76aad0d04d21f10bc65318d3f6
266
+
## Résumé
293
267
294
268
Il existe 8 types de données de base en JavaScript.
295
269
@@ -304,14 +278,8 @@ Il existe 8 types de données de base en JavaScript.
304
278
305
279
L'opérateur `typeof` nous permet de voir quel type est stocké dans la variable.
306
280
307
-
<<<<<<< HEAD
308
-
- Deux formes : `typeof x` ou `typeof(x)`.
281
+
- Généralement utilisé sous cette forme `typeof x`, mais `typeof(x)` est également possible.
309
282
- Renvoie une chaîne de caractères avec le nom du type, comme `"string"`.
310
283
- Pour `null` il renvoit `"object"` -- C’est une erreur dans le langage, ce n’est pas un objet en fait.
311
-
=======
312
-
- Usually used as `typeof x`, but `typeof(x)` is also possible.
313
-
- Returns a string with the name of the type, like `"string"`.
314
-
- For `null` returns `"object"` -- this is an error in the language, it's not actually an object.
315
-
>>>>>>>71da17e5960f1c76aad0d04d21f10bc65318d3f6
316
284
317
285
Dans les chapitres suivants, nous nous concentrerons sur les valeurs primitives et une fois que nous les connaîtrons, nous passerons aux objets.
Copy file name to clipboardExpand all lines: 1-js/02-first-steps/08-operators/article.md
+10-32Lines changed: 10 additions & 32 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -191,47 +191,25 @@ Il y a beaucoup d'opérateurs en JavaScript. Chaque opérateur a un numéro corr
191
191
192
192
Un extrait du [tableau de précédence](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence) (vous n'avez pas besoin de vous en souvenir, mais notez que les opérateurs unaires ont une prioritée plus élevée que les binaires correspondants) :
193
193
194
-
<<<<<<< HEAD
195
194
| Précédence | Nom | Symbole |
196
195
|------------|-----------------|---------|
197
196
| ... | ... | ... |
198
-
|17| plus unaire |`+`|
199
-
|17| négation unaire |`-`|
200
-
|16| exponentiation |`**`|
201
-
|15| multiplication |`*`|
202
-
|15| division |`/`|
203
-
|13| addition |`+`|
204
-
|13| soustraction |`-`|
197
+
|15| plus unaire |`+`|
198
+
|15| négation unaire |`-`|
199
+
|14| exponentiation |`**`|
200
+
|13| multiplication |`*`|
201
+
|13| division |`/`|
202
+
|12| addition |`+`|
203
+
|12| soustraction |`-`|
205
204
| ... | ... | ... |
206
-
|3| affectation |`=`|
205
+
|2| affectation |`=`|
207
206
| ... | ... | ... |
208
207
209
-
Comme on peut le voir, le "plus unaire" a une priorité de `17`, ce qui est supérieur à `13` pour "l'addition" (plus binaire). C’est pourquoi, dans l’expression `"+apples + +oranges"`, les plus unaires fonctionnent en premier, puis l’addition.
210
-
=======
211
-
| Precedence | Name | Sign |
212
-
|------------|------|------|
213
-
| ... | ... | ... |
214
-
| 15 | unary plus |`+`|
215
-
| 15 | unary negation |`-`|
216
-
| 14 | exponentiation |`**`|
217
-
| 13 | multiplication |`*`|
218
-
| 13 | division |`/`|
219
-
| 12 | addition |`+`|
220
-
| 12 | subtraction |`-`|
221
-
| ... | ... | ... |
222
-
| 2 | assignment |`=`|
223
-
| ... | ... | ... |
224
-
225
-
As we can see, the "unary plus" has a priority of `15` which is higher than the `13` of "addition" (binary plus). That's why, in the expression `"+apples + +oranges"`, unary pluses work before the addition.
226
-
>>>>>>> 71da17e5960f1c76aad0d04d21f10bc65318d3f6
208
+
Comme on peut le voir, le "plus unaire" a une priorité de `15`, ce qui est supérieur à `12` pour "l'addition" (plus binaire). C’est pourquoi, dans l’expression `"+apples + +oranges"`, les plus unaires fonctionnent en premier, puis l’addition.
227
209
228
210
## Affectation
229
211
230
-
<<<<<<< HEAD
231
-
Notons qu’une affectation `=` est aussi un opérateur. Il est répertorié dans le tableau de priorité des précédences avec la très faible priorité de `3`.
232
-
=======
233
-
Let's note that an assignment `=` is also an operator. It is listed in the precedence table with the very low priority of `2`.
234
-
>>>>>>> 71da17e5960f1c76aad0d04d21f10bc65318d3f6
212
+
Notons qu’une affectation `=` est aussi un opérateur. Il est répertorié dans le tableau des précédences avec la très faible priorité de `2`.
235
213
236
214
C’est pourquoi lorsque nous assignons une variable, comme `x = 2 * 2 + 1`, les calculs sont effectués en premier, puis le `=` est évalué, stockant le résultat dans `x`.
Copy file name to clipboardExpand all lines: 1-js/02-first-steps/12-nullish-coalescing-operator/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
@@ -107,11 +107,7 @@ En pratique, la hauteur zéro est souvent une valeur valide, qui ne doit pas êt
107
107
108
108
## Priorité
109
109
110
-
<<<<<<< HEAD
111
-
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`.
112
-
=======
113
-
The precedence of the `??` operator is the same as `||`. They both equal `4` in the [MDN table](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence#Table).
114
-
>>>>>>> 71da17e5960f1c76aad0d04d21f10bc65318d3f6
110
+
La priorité de l'opérateur `??` est la même que celle de `||`. Elle est égale à `4` dans le [tableau MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence#Table).
115
111
116
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 `+`, `*`.
Copy file name to clipboardExpand all lines: 1-js/02-first-steps/16-function-expressions/article.md
+13-32Lines changed: 13 additions & 32 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,38 +12,29 @@ function sayHi() {
12
12
13
13
Il existe une autre syntaxe pour créer une fonction appelée *Expression de Fonction*.
14
14
15
-
<<<<<<< HEAD
16
-
Cela ressemble à ceci :
17
-
=======
18
-
It allows us to create a new function in the middle of any expression.
15
+
Cela nous permet de créer une nouvelle fonction au milieu de n'importe quelle expression.
19
16
20
-
For example:
21
-
>>>>>>> 71da17e5960f1c76aad0d04d21f10bc65318d3f6
17
+
Par exemple :
22
18
23
19
```js
24
20
letsayHi=function() {
25
21
alert( "Hello" );
26
22
};
27
23
```
28
24
29
-
<<<<<<< HEAD
30
-
Ici, la fonction est créée et attribuée explicitement à la variable, comme toute autre valeur. Quelle que soit la définition de la fonction, il ne s’agit que d’une valeur stockée dans la variable `sayHi`.
25
+
Ici, nous pouvons voir une variable `sayHi` obtenir une valeur, la nouvelle fonction, créée en tant que `function() { alert("Hello"); }`.
31
26
32
-
=======
33
-
Here we can see a variable `sayHi` getting a value, the new function, created as `function() { alert("Hello"); }`.
27
+
Comme la création de la fonction se produit dans le contexte de l'expression d'affectation (à droite de `=`), il s'agit d'une *Fonction Expression*.
34
28
35
-
As the function creation happens in the context of the assignment expression (to the right side of `=`), this is a *Function Expression*.
29
+
Veuillez noter qu'il n'y a pas de nom après le mot clé `function`. L'omission d'un nom est autorisée pour les fonctions expressions.
36
30
37
-
Please note, there's no name after the `function` keyword. Omitting a name is allowed for Function Expressions.
31
+
Ici, nous l'assignons immédiatement à la variable, donc la signification de ces exemples de code est la même : "créer une fonction et la mettre dans la variable `sayHi`".
38
32
39
-
Here we immediately assign it to the variable, so the meaning of these code samples is the same: "create a function and put it into the variable `sayHi`".
33
+
Dans des situations plus avancées, que nous verrons plus tard, une fonction peut être créée et immédiatement appelée ou planifiée pour une exécution ultérieure, non stockée nulle part, restant ainsi anonyme.
40
34
41
-
In more advanced situations, that we'll come across later, a function may be created and immediately called or scheduled for a later execution, not stored anywhere, thus remaining anonymous.
35
+
## La fonction est une valeur
42
36
43
-
## Function is a value
44
-
45
-
Let's reiterate: no matter how the function is created, a function is a value. Both examples above store a function in the `sayHi` variable.
46
-
>>>>>>> 71da17e5960f1c76aad0d04d21f10bc65318d3f6
37
+
Répétons-le : quelle que soit la manière dont la fonction est créée, une fonction est une valeur. Les deux exemples ci-dessus stockent une fonction dans la variable `sayHi`.
47
38
48
39
La signification de ces exemples de code est la même : "créer une fonction et la placer dans la variable `sayHi`".
49
40
@@ -86,11 +77,7 @@ Voici ce qui se passe ci-dessus en détail :
86
77
2. La ligne `(2)` le copie dans la variable `func`. Veuillez noter à nouveau : il n'y a pas de parenthèses après `sayHi`. S'il y en avait, alors `func = sayHi()` écrirait *le résultat de l'appel*`sayHi()` dans `func`, et non *la fonction*`sayHi` elle-même.
87
78
3. Maintenant, la fonction peut être appelée à la fois en tant que `sayHi()` et `func()`.
88
79
89
-
<<<<<<< HEAD
90
-
Notez que nous aurions aussi pu utiliser une Expression de Fonction pour déclarer `sayHi`, à la première ligne :
91
-
=======
92
-
We could also have used a Function Expression to declare `sayHi`, in the first line:
93
-
>>>>>>> 71da17e5960f1c76aad0d04d21f10bc65318d3f6
80
+
Nous aurions aussi pu utiliser une Fonction Expression pour déclarer `sayHi`, à la première ligne :
94
81
95
82
```js
96
83
letsayHi=function() { // (1) create
@@ -105,7 +92,7 @@ Tout fonctionnerait de la même manière.
105
92
106
93
107
94
````smart header="Pourquoi y a-t-il un point-virgule à la fin ?"
108
-
Il peut y avoir une question, pourquoi l'Expression de Fonction a un point-virgule `;` à la fin, et la Déclaration de Fonction non :
95
+
Il peut y avoir une question, pourquoi la Fonction Expression a un point-virgule `;` à la fin, et la Fonction Déclaration non :
109
96
110
97
111
98
```js
@@ -118,15 +105,9 @@ let sayHi = function() {
118
105
}*!*;*/!*
119
106
```
120
107
121
-
<<<<<<< HEAD
122
-
La réponse est simple :
123
-
- Il n’ya pas besoin de `;` à la fin des blocs de code et des structures de syntaxe qui les utilisent comme `if { ... }`, `for { }`, `function f { }` etc.
124
-
- Une Fonction Expression est utilisée dans la déclaration : `let sayHi = …;`, en tant que valeur. Ce n’est pas un bloc de code, mais plutôt une affectation. Le point-virgule `;` est recommandé à la fin des déclarations, quelle que soit la valeur. Donc, le point-virgule ici n'est en aucun cas lié à la Fonction Expression elle même, il termine simplement l'instruction.
125
-
=======
126
-
The answer is simple: a Function Expression is created here as `function(…) {…}` inside the assignment statement: `let sayHi = …;`. The semicolon `;` is recommended at the end of the statement, it's not a part of the function syntax.
108
+
La réponse est simple : une expression de fonction est créée ici en tant que `function(…) {…}` à l'intérieur de l'instruction d'affectation : `let sayHi = …;`. Le point-virgule `;` est recommandé à la fin de l'instruction, il ne fait pas partie de la syntaxe de la fonction.
127
109
128
-
The semicolon would be there for a simpler assignment, such as `let sayHi = 5;`, and it's also there for a function assignment.
129
-
>>>>>>> 71da17e5960f1c76aad0d04d21f10bc65318d3f6
110
+
Le point-virgule serait là pour une affectation plus simple, telle que `let sayHi = 5;`, et il est également là pour une affectation de fonction.
Copy file name to clipboardExpand all lines: 1-js/02-first-steps/17-arrow-functions-basics/article.md
+2-14Lines changed: 2 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,11 +8,7 @@ Les "fonctions fléchées" sont appelées ainsi pour leur syntaxe :
8
8
letfunc= (arg1, arg2, ..., argN) => expression;
9
9
```
10
10
11
-
<<<<<<< HEAD
12
-
...Cela va créér une function `func` qui accepte les arguments `arg1...argN`, puis évalue l'`expression` sur le côté droit et retourne le résultat.
13
-
=======
14
-
This creates a function `func` that accepts arguments `arg1..argN`, then evaluates the `expression` on the right side with their use and returns its result.
15
-
>>>>>>> 71da17e5960f1c76aad0d04d21f10bc65318d3f6
11
+
Cela va créér une function `func` qui accepte les arguments `arg1...argN`, puis évalue l'`expression` sur le côté droit et retourne le résultat.
16
12
17
13
C'est donc la version raccourcie de :
18
14
@@ -37,11 +33,7 @@ let sum = function(a, b) {
37
33
alert( sum(1, 2) ); // 3
38
34
```
39
35
40
-
<<<<<<< HEAD
41
36
Comme vous pouvez le voir `(a, b) => a + b` représente une fonction qui accepte 2 arguments nommés `a` et `b`. Lors de l'éxécution, elle évalue l'expression `a + b` et retourne le résultat.
42
-
=======
43
-
As you can see, `(a, b) => a + b` means a function that accepts two arguments named `a` and `b`. Upon the execution, it evaluates the expression `a + b` and returns the result.
44
-
>>>>>>> 71da17e5960f1c76aad0d04d21f10bc65318d3f6
45
37
46
38
- Pour un argument unique, alors les parenthèses autour du paramètre peuvent être omises, rendant la fonction encore plus courte.
47
39
@@ -94,11 +86,7 @@ Comme cela :
94
86
let sum = (a, b) => { // Les accolades ouvre une fonction multiligne
95
87
let result = a + b;
96
88
*!*
97
-
<<<<<<< HEAD
98
-
return result; // Si nous utilisons des accolades le "return" est nécessaire
99
-
=======
100
-
return result; // if we use curly braces, then we need an explicit "return"
101
-
>>>>>>> 71da17e5960f1c76aad0d04d21f10bc65318d3f6
89
+
return result; // si nous utilisons des accolades, nous avons besoin d'un "return" explicite
Copy file name to clipboardExpand all lines: 1-js/04-object-basics/06-constructor-new/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
@@ -1,10 +1,6 @@
1
1
# Le constructeur, l'opérateur "new"
2
2
3
-
<<<<<<< HEAD
4
3
La syntaxe normale `{...}` permet de créer un seul objet. Mais souvent, nous devons créer de nombreux objets similaires, tels que plusieurs utilisateurs ou éléments de menu, etc.
5
-
=======
6
-
The regular `{...}` syntax allows us to create one object. But often we need to create many similar objects, like multiple users or menu items and so on.
7
-
>>>>>>> 71da17e5960f1c76aad0d04d21f10bc65318d3f6
8
4
9
5
Cela peut être fait en utilisant les fonctions du constructeur et l'opérateur `"new"`.
Copy file name to clipboardExpand all lines: 1-js/04-object-basics/07-optional-chaining/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
@@ -30,11 +30,7 @@ C'est le résultat attendu. JavaScript fonctionne comme cela. Comme `user.addres
30
30
31
31
Dans de nombreux cas pratiques, nous préférerions obtenir `undefined` au lieu d'une erreur ici (signifiant "pas de rue").
32
32
33
-
<<<<<<< HEAD
34
33
... Et un autre exemple. Dans le développement Web, nous pouvons obtenir un objet qui correspond à un élément de page Web à l'aide d'un appel de méthode spécial, tel que `document.querySelector('.elem')`, et il renvoie `null` lorsqu'il n'y a pas ce type d'élément.
35
-
=======
36
-
...and another example. In Web development, we can get an object that corresponds to a web page element using a special method call, such as `document.querySelector('.elem')`, and it returns `null` when there's no such element.
37
-
>>>>>>> 71da17e5960f1c76aad0d04d21f10bc65318d3f6
38
34
39
35
```js run
40
36
// document.querySelector('.elem') est nul s'il n'y a pas d'élément
0 commit comments