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/04-variables/article.md
+48
Original file line number
Diff line number
Diff line change
@@ -88,16 +88,26 @@ Dans les anciens scripts, vous pouvez également trouver un autre mot-clé : `v
88
88
*!*var*/!* message ='Hello';
89
89
```
90
90
91
+
<<<<<<< HEAD
91
92
Le mot-clé `var` est *presque* identique à `let`. Il déclare également une variable, mais d'une manière légèrement différente, à la mode "old school".
92
93
93
94
Il y a des différences subtiles entre `let` et `var`, mais elles n'ont pas encore d'importance pour nous. Nous les couvrirons en détails plus tard, dans le chapitre <info:var>.
95
+
=======
96
+
The `var` keyword is *almost* the same as `let`. It also declares a variable but in a slightly different, "old-school" way.
97
+
98
+
There are subtle differences between `let` and `var`, but they do not matter to us yet. We'll cover them in detail in the chapter <info:var>.
99
+
>>>>>>> 035c5267ba80fa7b55878f7213cbde449b4092d9
94
100
````
95
101
96
102
## Une analogie avec la vie réelle
97
103
98
104
Nous pouvons facilement saisir le concept d'une "variable" si nous l'imaginons comme une "boîte" pour les données, avec un autocollant portant un nom unique.
99
105
106
+
<<<<<<< HEAD
100
107
Par exemple, la variable message peut être imaginée comme une boîte étiquetée "message" avec la valeur "Hello!" à l'intérieur :
108
+
=======
109
+
For instance, the variable `message` can be imagined as a box labelled `"message"` with the value `"Hello!"` in it:
110
+
>>>>>>> 035c5267ba80fa7b55878f7213cbde449b4092d9
101
111
102
112

103
113
@@ -197,16 +207,25 @@ let mon-nom; // un trait d'union '-' n'est pas autorisé dans le nom
197
207
Des variables nommées `apple` et `APPLE` sont deux variables différentes.
198
208
```
199
209
210
+
<<<<<<< HEAD
200
211
````smart header="Les lettres non latines sont autorisées mais non recommandées"
201
212
Il est possible d'utiliser n'importe quelle langue, y compris les lettres cyrilliques, les logogrammes chinois, etc., comme ceci :
213
+
=======
214
+
````smart header="Non-Latin letters are allowed, but not recommended"
215
+
It is possible to use any language, including Cyrillic letters, Chinese logograms and so on, like this:
216
+
>>>>>>> 035c5267ba80fa7b55878f7213cbde449b4092d9
202
217
203
218
```js
204
219
let имя = '...';
205
220
let 我 = '...';
206
221
```
207
222
223
+
<<<<<<< HEAD
208
224
Techniquement, il n'y a pas d'erreur ici, ces noms sont autorisés, mais il existe une convention internationale d'utiliser l'anglais dans les noms de variables. Même si nous écrivons un petit script, sa vie peut être longue. Les personnes d'autres pays peuvent avoir besoin de les lire quelque temps.
209
225
226
+
=======
227
+
Technically, there is no error here. Such names are allowed, but there is an international convention to use English in variable names. Even if we're writing a small script, it may have a long life ahead. People from other countries may need to read it sometime.
myBirthday = '01.01.2001'; // erreur, ne peut pas réaffecter la constante !
263
282
```
264
283
284
+
<<<<<<< HEAD
265
285
Lorsqu'un programmeur est certain que la variable ne doit jamais changer, il peut utiliser `const` pour le garantir et également le montrer clairement à tout le monde.
286
+
=======
287
+
When a programmer is sure that a variable will never change, they can declare it with `const` to guarantee and communicate that fact to everyone.
288
+
>>>>>>> 035c5267ba80fa7b55878f7213cbde449b4092d9
266
289
267
290
291
+
<<<<<<< HEAD
268
292
### Les constantes en majuscules
293
+
=======
294
+
There is a widespread practice to use constants as aliases for difficult-to-remember values that are known before execution.
295
+
>>>>>>> 035c5267ba80fa7b55878f7213cbde449b4092d9
269
296
270
297
Il existe une pratique répandue d’utiliser des constantes comme alias pour des valeurs difficiles à mémoriser, qui sont connues avant leur exécution.
271
298
@@ -292,15 +319,23 @@ Bénéfices:
292
319
293
320
Quand devrions-nous utiliser les majuscules pour une constante et quand devrions-nous les nommer normalement ? Soyons clairs.
294
321
322
+
<<<<<<< HEAD
295
323
Être une "constante" signifie simplement que la valeur ne change jamais. Mais il existe des constantes connues avant l'exécution (comme une valeur hexadécimale pour le rouge), et il y a celles qui sont *calculées* en temps réel, pendant l'exécution, mais ne changent pas après l'affectation.
324
+
=======
325
+
Being a "constant" just means that a variable's value never changes. But some constants are known before execution (like a hexadecimal value for red) and some constants are *calculated* in run-time, during the execution, but do not change after their initial assignment.
326
+
>>>>>>> 035c5267ba80fa7b55878f7213cbde449b4092d9
296
327
297
328
Par exemple :
298
329
299
330
```js
300
331
const pageLoadTime = /* temps pris par une page Web pour charger */;
301
332
```
302
333
334
+
<<<<<<< HEAD
303
335
La valeur de `pageLoadTime` n’est pas connue avant le chargement de la page, elle est donc nommée normalement. Mais cela reste une constante, car elle ne change pas après l’affectation.
336
+
=======
337
+
The value of `pageLoadTime` is not known before the page load, so it's named normally. But it's still a constant because it doesn't change after the assignment.
338
+
>>>>>>> 035c5267ba80fa7b55878f7213cbde449b4092d9
304
339
305
340
En d'autres termes, les constantes nommées en majuscules ne sont utilisées que comme alias pour les valeurs "codées en dur".
306
341
@@ -310,18 +345,31 @@ En parlant de variables, il y a une autre chose extrêmement importante.
310
345
311
346
Un nom de variable doit avoir une signification claire et évidente, décrivant les données qu'elle stocke.
312
347
348
+
<<<<<<< HEAD
313
349
Le nommage de variables est l’une des compétences les plus importantes et les plus complexes de la programmation. Un rapide coup d’œil sur les noms de variables peut révéler quel code est écrit par un débutant et par un développeur expérimenté.
314
350
315
351
Dans un projet réel, la majeure partie du temps est consacrée à la modification et à l'extension de la base de code existant, plutôt que d'écrire quelque chose de complètement séparé de zéro. Et lorsque nous revenons au code après un certain temps, il est beaucoup plus facile de trouver des informations bien étiquetées. Ou, en d'autres termes, lorsque les variables ont de bons noms.
352
+
=======
353
+
Variable naming is one of the most important and complex skills in programming. A glance at variable names can reveal which code was written by a beginner versus an experienced developer.
354
+
355
+
In a real project, most of the time is spent modifying and extending an existing code base rather than writing something completely separate from scratch. When we return to some code after doing something else for a while, it's much easier to find information that is well-labelled. Or, in other words, when the variables have good names.
356
+
>>>>>>> 035c5267ba80fa7b55878f7213cbde449b4092d9
316
357
317
358
Veuillez prendre le temps de réfléchir à un nom pertinent pour une variable avant de la déclarer. Cela vous facilitera énormément la vie.
318
359
319
360
Voici quelques règles à suivre :
320
361
362
+
<<<<<<< HEAD
321
363
- Utilisez des noms lisibles par des humains comme `userName` ou `shoppingCart`.
322
364
- Restez à l’écart des abréviations ou des noms courts tels que `a`, `b`, `c`, à moins que vous ne sachiez vraiment ce que vous faites.
323
365
- Faire en sorte que le nom soit le plus descriptif et concis possible. Des exemples de noms incorrects sont `data` et `value`. Un tel nom ne dit rien. C’est tout à fait acceptable de les utiliser si le contexte dans lequel les données ou les valeurs sont impliquées est particulièrement évident.
324
366
- S'accorder avec son équipe (et soi-même) sur les termes utilisés. Si un visiteur du site est appelé un "utilisateur", nous devrions nommer les variables connexes comme `currentUser` ou `newUser`, mais non `currentVisitor` ou encore `newManInTown`.
367
+
=======
368
+
- Use human-readable names like `userName` or `shoppingCart`.
369
+
- Stay away from abbreviations or short names like `a`, `b`, and `c`, unless you know what you're doing.
370
+
- Make names maximally descriptive and concise. Examples of bad names are `data` and `value`. Such names say nothing. It's only okay to use them if the context of the code makes it exceptionally obvious which data or value the variable is referencing.
371
+
- Agree on terms within your team and in your mind. If a site visitor is called a "user" then we should name related variables `currentUser` or `newUser` instead of `currentVisitor` or `newManInTown`.
372
+
>>>>>>> 035c5267ba80fa7b55878f7213cbde449b4092d9
325
373
326
374
Cela semble simple ? En effet, ça l'est, mais la création de noms descriptifs et concis dans la pratique ne l'est pas. Fonce.
Comme les chiffres `BigInt` sont rarement nécessaires, nous leur avons consacré un chapitre dédié <info:bigint>. Lisez-le lorsque vous avez besoin d'aussi gros chiffres.
98
98
99
+
<<<<<<< HEAD
99
100
```smart header="Problèmes de compatibilité"
100
101
À l'heure actuelle, `BigInt` est pris en charge dans Firefox/Chrome/Edge/Safari, mais pas dans IE.
101
102
```
102
103
103
104
You can check [*MDN* BigInt compatibility table](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt#Browser_compatibility) to know which versions of a browser are supported.
104
105
106
+
=======
107
+
>>>>>>> 035c5267ba80fa7b55878f7213cbde449b4092d9
105
108
## String
106
109
107
110
Une chaîne de caractères en JavaScript doit être entre guillemets.
Copy file name to clipboardExpand all lines: 1-js/03-code-quality/06-polyfills/article.md
+16
Original file line number
Diff line number
Diff line change
@@ -7,7 +7,11 @@ Les équipes derrière les moteurs JavaScript ont leurs propres idées sur ce qu
7
7
8
8
Il est donc assez courant pour un moteur de ne mettre en œuvre qu'une partie du standard.
9
9
10
+
<<<<<<< HEAD
10
11
Une bonne page pour voir l’état actuel de la prise en charge des fonctionnalités du langage est <https://kangax.github.io/compat-table/es6/> (c’est énorme, nous avons encore beaucoup à étudier).
12
+
=======
13
+
A good page to see the current state of support for language features is <https://compat-table.github.io/compat-table/es6/> (it's big, we have a lot to study yet).
14
+
>>>>>>> 035c5267ba80fa7b55878f7213cbde449b4092d9
11
15
12
16
En tant que programmeurs, nous aimerions utiliser les fonctionnalités les plus récentes. Plus il y a de bonnes choses, mieux c'est !
13
17
@@ -71,10 +75,14 @@ if (!Math.trunc) { // si une telle fonction n'existe pas
71
75
72
76
JavaScript est un langage très dynamique, les scripts peuvent ajouter/modifier toutes les fonctions, y compris celles intégrées.
73
77
78
+
<<<<<<< HEAD
74
79
Deux librairies intéressantes de polyfills sont :
75
80
- [core js](https://github.com/zloirock/core-js) qui prend en charge beaucoup de choses et permet d'inclure uniquement les fonctionnalités nécessaires.
76
81
- [polyfill.io](https://polyfill.io) est un service qui fournit un script avec des polyfills, en fonction des fonctionnalités et du navigateur de l'utilisateur.
77
82
83
+
=======
84
+
One interesting polyfill library is [core-js](https://github.com/zloirock/core-js), which supports a wide range of features and allows you to include only the ones you need.
85
+
>>>>>>> 035c5267ba80fa7b55878f7213cbde449b4092d9
78
86
79
87
## Résumé
80
88
@@ -84,8 +92,16 @@ N'oubliez pas d'utiliser un transpiler (si vous utilisez une syntaxe ou des opé
84
92
85
93
Par exemple, plus tard, lorsque vous serez familiarisé avec JavaScript, vous pourrez configurer un système de création de code basé sur [webpack](http://webpack.js.org/) avec le plugin [babel-loader](https://github.com/babel/babel-loader).
86
94
95
+
<<<<<<< HEAD
87
96
De bonnes ressources qui montrent l'état actuel de la prise en charge de diverses fonctionnalités :
88
97
- <https://kangax.github.io/compat-table/es6/> - pour du pur JavaScript.
89
98
- <https://caniuse.com/> - pour les fonctions liées au navigateur.
99
+
=======
100
+
Good resources that show the current state of support for various features:
101
+
- <https://compat-table.github.io/compat-table/es6/> - for pure JavaScript.
102
+
- <https://caniuse.com/> - for browser-related functions.
103
+
104
+
P.S. Google Chrome is usually the most up-to-date with language features, try it if a tutorial demo fails. Most tutorial demos work with any modern browser though.
105
+
>>>>>>> 035c5267ba80fa7b55878f7213cbde449b4092d9
90
106
91
107
P.S. Google Chrome est généralement le plus à jour avec les fonctionnalités du langage, essayez-le si une démonstration d'un tutoriel échoue. La plupart des démos de didacticiels fonctionnent avec n'importe quel navigateur moderne.
0 commit comments