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/1-intro/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
@@ -109,19 +109,11 @@ Les outils modernes rendent la [transpilation](https://fr.wiktionary.org/wiki/tr
109
109
110
110
Les exemples de ce genre de langages :
111
111
112
-
<<<<<<< HEAD
113
112
-[CoffeeScript](http://coffeescript.org/) est un "sucre syntaxique" pour JavaScript, il introduit une syntaxe plus courte, permettant d’écrire du code plus précis et plus clair. Habituellement, les développeurs Ruby l'aiment bien.
114
113
-[TypeScript](http://www.typescriptlang.org/) se concentre sur l'ajout de "typage strict des données" pour simplifier le développement et la prise en charge de systèmes complexes. Il est développé par Microsoft.
115
114
-[Flow](http://flow.org/) ajoute également la saisie de données, mais de manière différente. Développé par Facebook.
116
-
-[Dart](https://www.dartlang.org/) est un langage autonome doté de son propre moteur qui s'exécute dans des environnements autres que les navigateurs (comme les applications mobiles). Développé par Google.
115
+
-[Dart](https://www.dartlang.org/) est un langage autonome doté de son propre moteur qui s'exécute dans des environnements autres que les navigateurs (comme les applications mobiles), mais peut aussi être transpilé en JavaScript. Développé par Google.
117
116
-[Brython](https://brython.info/) est un transpilateur Python vers JavaScript qui permet d'écrire des applications en Python pur sans JavaScript.
118
-
=======
119
-
-[CoffeeScript](http://coffeescript.org/) is a "syntactic sugar" for JavaScript. It introduces shorter syntax, allowing us to write clearer and more precise code. Usually, Ruby devs like it.
120
-
-[TypeScript](http://www.typescriptlang.org/) is concentrated on adding "strict data typing" to simplify the development and support of complex systems. It is developed by Microsoft.
121
-
-[Flow](http://flow.org/) also adds data typing, but in a different way. Developed by Facebook.
122
-
-[Dart](https://www.dartlang.org/) is a standalone language that has its own engine that runs in non-browser environments (like mobile apps), but also can be transpiled to JavaScript. Developed by Google.
123
-
-[Brython](https://brython.info/) is a Python transpiler to JavaScript that enables the writing of applications in pure Python without JavaScript.
124
-
>>>>>>> 13da056653754765b50aa5a9f706f84a4a0d6293
125
117
126
118
Il en existe évidemment bien plus, cela dit, même si nous utilisons un de ces langages, nous devrions également connaître le langage JavaScript, pour bien comprendre ce que nous faisons.
Copy file name to clipboardExpand all lines: 1-js/02-first-steps/04-variables/2-declare-variables/solution.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
@@ -6,11 +6,7 @@ C’est simple :
6
6
let notrePlanete ="Terre";
7
7
```
8
8
9
-
<<<<<<< HEAD
10
9
Notez que nous pourrions utiliser un nom `planète` plus court, mais la planète à laquelle il fait référence pourrait ne pas être évidente. C’est bien d’être plus verbeux. Au moins jusqu'à ce que la variable n'estPasTropLongue.
11
-
=======
12
-
Note, we could use a shorter name `planet`, but it might not be obvious what planet it refers to. It's nice to be more verbose. At least until the variable isNotTooLong.
Copy file name to clipboardExpand all lines: 1-js/02-first-steps/08-operators/article.md
+3-8Lines changed: 3 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -105,20 +105,15 @@ Cependant, notez que les opérations se déroulent de gauche à droite. S'il y a
105
105
alert(2 + 2 + '1' ); // "41" et non "221"
106
106
```
107
107
108
-
<<<<<<<HEAD
109
-
Ici, les opérateurs travaillent les uns après les autres. Le premier `+` additionne deux nombres, donc il renvoie `4`, puis le `+` suivant ajoute la chaîne `1`, donc c'est comme `4 + '1' = 41`.
110
-
=======
111
-
Here, operators work one after another. The first `+` sums two numbers, so it returns `4`, then the next `+` adds the string `1` to it, so it's like `4 + '1' = 41`.
108
+
Ici, les opérateurs travaillent les uns après les autres. Le premier `+` additionne deux nombres, donc il renvoie `4`, puis le `+` suivant ajoute la chaîne de caractères `1`, donc c'est comme `4 + '1' = 41`.
112
109
113
110
```js run
114
111
alert('1' + 2 + 2); // "122" and not "14"
115
112
```
116
-
Here, the first operand is a string, the compiler treats the other two operands as strings too. The`2`gets concatenated to`'1'`, so it's like `'1'+ 2 = "12"` and `"12" + 2 = "122"`.
113
+
Ici, le premier opérande est une chaîne de caractères, le compilateur traite également les deux autres opérandes comme des chaînes de caractères. Le `2` est concaténé à `'1'`, donc c'est comme`'1'+ 2 = "12"`et`"12" + 2 = "122"`.
117
114
118
-
The binary `+` is the only operator that supports strings in such a way. Other arithmetic operators work only with numbers and always convert their operands to numbers.
119
-
>>>>>>> 13da056653754765b50aa5a9f706f84a4a0d6293
120
115
121
-
Le binaire `+` est le seul opérateur qui prend en charge les chaînes de cette manière. D'autres opérateurs arithmétiques ne fonctionnent qu'avec des nombres et convertissent toujours leurs opérandes en nombres.
116
+
Le binaire `+` est le seul opérateur qui prend en charge les chaînes de caractères de cette manière. D'autres opérateurs arithmétiques ne fonctionnent qu'avec des nombres et convertissent toujours leurs opérandes en nombres.
122
117
123
118
Voici l'exemple pour la soustraction et la division:
Copy file name to clipboardExpand all lines: 1-js/03-code-quality/06-polyfills/article.md
+38-84Lines changed: 38 additions & 84 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,128 +11,82 @@ Une bonne page pour voir l’état actuel de la prise en charge des fonctionnali
11
11
12
12
As programmers, we'd like to use most recent features. The more good stuff - the better!
13
13
14
-
<<<<<<< HEAD
15
-
Lorsque nous utilisons des fonctionnalités modernes du langage, certains moteurs peuvent ne pas supporter un tel code. Comme indiqué, toutes les fonctionnalités ne sont pas implémentées partout.
14
+
D'un autre côté, comment faire fonctionner le code moderne sur des moteurs plus anciens qui ne comprennent pas encore les fonctionnalités récentes ?
16
15
17
-
C'est là que Babel vient à la rescousse.
16
+
Il existe deux outils pour cela :
18
17
19
-
[Babel](https://babeljs.io) est un [transpileur](https://fr.wikipedia.org/wiki/Compilateur_source_%C3%A0_source). Il réécrit le code JavaScript moderne dans le standard précédent.
18
+
1. Les transpilers.
19
+
2. Les polyfills.
20
20
21
-
Actuellement, Babel comporte deux parties :
21
+
Ici, dans ce chapitre, notre objectif est de comprendre l'essentiel de leur fonctionnement et de leur place dans le développement Web.
22
22
23
-
1. Tout d’abord, le programme transpileur, qui réécrit le code. Le développeur l'exécute sur son propre ordinateur. Il réécrit le code dans l'ancien standard. Et ensuite, le code est transmis au site Web pour les utilisateurs. Des systèmes de construction de projet moderne comme [webpack](http://webpack.github.io/) qui permet de fournir des moyens d’exécuter automatiquement un transpileur à chaque changement de code, de sorte que cela devient très facile à intégrer dans le processus de développement.
23
+
## Les transpilers
24
24
25
-
2. Ensuite, le polyfill.
25
+
Un [transpiler](https://en.wikipedia.org/wiki/Source-to-source_compiler) est un logiciel spécial qui peut analyser ("lire et comprendre") le code moderne et le réécrire en utilisant des constructions de syntaxe plus anciennes, de sorte que le résultat soit le même.
26
26
27
-
Les nouvelles fonctionnalités du langage peuvent inclure de nouvelles fonctions intégrées et de nouvelles constructions de syntaxe.
28
-
Le transpiler réécrit le code en transformant les nouvelles constructions de syntaxe en anciennes. Mais en ce qui concerne les nouvelles fonctions intégrées, nous devons les implémenter. JavaScript est un langage très dynamique, les scripts peuvent ajouter / modifier n’importe quelle fonction, afin qu’ils se comportent conformément au standard moderne.
27
+
Par exemple, JavaScript avant l'année 2020 n'avait pas "l'opérateur de coalescence des nuls" `??`. Ainsi, si un visiteur utilise un navigateur obsolète, il peut ne pas comprendre le code tel que `height = height ?? 100`.
29
28
30
-
Un script qui met à jour / ajoute de nouvelles fonctions s'appelle "polyfill". Il "comble" le vide et ajoute les implémentations manquantes.
31
-
32
-
Deux polyfill intéressants sont :
33
-
- [core js](https://github.com/zloirock/core-js) qui prend beaucoup en charge, permet d’inclure uniquement les fonctionnalités nécessaires.
34
-
- [polyfill.io](http://polyfill.io) service qui fournit un script avec des polyfill, en fonction des fonctionnalités et du navigateur de l'utilisateur.
35
-
36
-
Nous devons donc configurer le transpileur et ajouter le polyfill pour les anciens moteurs afin de prendre en charge les fonctionnalités modernes.
37
-
38
-
Donc, si nous allons utiliser les fonctionnalités du langage moderne, un transpiler et un polyfill sont nécessaires.
39
-
40
-
## Exemples dans le tutoriel
41
-
=======
42
-
From the other hand, how to make out modern code work on older engines that don't understand recent features yet?
43
-
44
-
There are two tools for that:
45
-
46
-
1. Transpilers.
47
-
2. Polyfills.
48
-
49
-
Here, in this chapter, our purpose is to get the gist of how they work, and their place in web development.
50
-
51
-
## Transpilers
52
-
53
-
A [transpiler](https://en.wikipedia.org/wiki/Source-to-source_compiler) is a special piece of software that can parse ("read and understand") modern code, and rewrite it using older syntax constructs, so that the result would be the same.
54
-
55
-
E.g. JavaScript before year 2020 didn't have the "nullish coalescing operator" `??`. So, if a visitor uses an outdated browser, it may fail to understand the code like `height = height ?? 100`.
56
-
57
-
A transpiler would analyze our code and rewrite `height ?? 100` into `(height !== undefined && height !== null) ? height : 100`.
29
+
Un transpiler analyserait notre code et réécrirait `height ?? 100` en `(height !== undefined && height !== null) ? height : 100`.
Now the rewritten code is suitable for older JavaScript engines.
68
-
>>>>>>> 13da056653754765b50aa5a9f706f84a4a0d6293
69
-
70
-
Usually, a developer runs the transpiler on their own computer, and then deploys the transpiled code to the server.
39
+
Désormais, le code réécrit convient aux anciens moteurs JavaScript.
71
40
72
-
<<<<<<< HEAD
73
-
````online
74
-
La plupart des exemples sont exécutables sur place, comme ceci :
75
-
=======
76
-
Speaking of names, [Babel](https://babeljs.io) is one of the most prominent transpilers out there.
77
-
>>>>>>> 13da056653754765b50aa5a9f706f84a4a0d6293
41
+
Habituellement, un développeur exécute le transpiler sur son propre ordinateur, puis déploie le code transpilé sur le serveur.
78
42
79
-
Modern project build systems, such as [webpack](http://webpack.github.io/), provide means to run transpiler automatically on every code change, so it's very easy to integrate into development process.
43
+
En parlant de noms, [Babel](https://babeljs.io) est l'un des transpileurs les plus connus.
80
44
81
-
## Polyfills
45
+
Les systèmes de construction de projets modernes, tels que [webpack](http://webpack.github.io/), fournissent des moyens pour exécuter un transpiler automatiquement à chaque changement de code, il est donc très facile à intégrer dans le processus de développement.
82
46
83
-
New language features may include not only syntax constructs and operators, but also built-in functions.
47
+
## Les polyfills
84
48
85
-
For example, `Math.trunc(n)` is a function that "cuts off" the decimal part of a number, e.g `Math.trunc(1.23) =1`.
86
-
87
-
<<<<<<< HEAD
88
-
Les exemples qui utilisent le JS moderne ne fonctionneront que si votre navigateur le prend en charge.
89
-
````
90
-
91
-
```offline
92
-
Pendant que vous lisez la version hors connexion, les exemples ne sont pas exécutables. DansEPUB, certains peuvent fonctionner.
93
-
```
49
+
Les nouvelles fonctionnalités du langage peuvent inclure non seulement des constructions de syntaxe et des opérateurs, mais également des fonctions intégrées.
94
50
95
-
Google Chrome est généralement la version la plus récente des fonctionnalités du langage, il accepte de lancer des démos ultra-sophistiquées sans transpilers, mais les autres navigateurs modernes fonctionnent également très bien.
51
+
Par exemple, `Math.trunc(n)`est une fonction qui "coupe" la partie décimale d'un nombre, par exemple `Math.trunc(1.23) =1`.
96
52
97
-
=======
98
-
In some (very outdated) JavaScript engines, there's no `Math.trunc`, so such code will fail.
53
+
Dans certains moteurs JavaScript (très obsolètes), il n'y a pas de `Math.trunc`, donc un tel code échouera.
99
54
100
-
As we're talking about new functions, not syntax changes, there's no need to transpile anything here. We just need to declare the missing function.
55
+
Comme nous parlons de nouvelles fonctions, pas de changements de syntaxe, il n'est pas nécessaire de transpiler quoi que ce soit ici. Nous avons juste besoin de déclarer la fonction manquante.
101
56
102
-
A script that updates/adds new functions is called "polyfill". It "fills in" the gap and adds missing implementations.
57
+
Un script qui met à jour/ajoute de nouvelles fonctions est appelé "polyfill". Il "comble" le vide et ajoute les implémentations manquantes.
103
58
104
-
For this particular case, the polyfill for`Math.trunc`is a script that implements it, like this:
59
+
Pour ce cas particulier, le polyfill pour`Math.trunc`est un script qui l'implémente, comme ceci :
105
60
106
61
```js
107
-
if (!Math.trunc) { //if no such function
108
-
//implement it
62
+
if (!Math.trunc) { //si une telle fonction n'existe pas
63
+
//l'implémenter
109
64
Math.trunc=function(number) {
110
-
// Math.ceil and Math.floor exist even in ancient JavaScript engines
111
-
//they are covered later in the tutorial
65
+
// Math.ceil et Math.floor existe même dans les anciens moteurs JavaScript
66
+
//ils sont traités plus tard dans le tutoriel
112
67
return number <0?Math.ceil(number) :Math.floor(number);
113
68
};
114
69
}
115
70
```
116
71
117
-
JavaScript is a highly dynamic language, scripts may add/modify any functions, even including built-in ones.
72
+
JavaScript est un langage très dynamique, les scripts peuvent ajouter/modifier toutes les fonctions, y compris celles intégrées.
118
73
119
-
Two interesting libraries of polyfills are:
120
-
- [core js](https://github.com/zloirock/core-js) that supports a lot, allows to include only needed features.
121
-
- [polyfill.io](http://polyfill.io) service that provides a script with polyfills, depending on the features and user's browser.
74
+
Deux librairies intéressantes de polyfills sont :
75
+
- [core js](https://github.com/zloirock/core-js) qui prend en charge beaucoup, permet d'inclure uniquement les fonctionnalités nécessaires.
76
+
- [polyfill.io](http://polyfill.io) est un service qui fournit un script avec des polyfills, en fonction des fonctionnalités et du navigateur de l'utilisateur.
122
77
123
78
124
-
## Summary
79
+
## Résumé
125
80
126
-
In this chapter we'd like to motivate you to study modern and even "bleeding-edge" language features, even if they aren't yet well-supported by JavaScript engines.
81
+
Dans ce chapitre, nous aimerions vous motiver à étudier les fonctionnalités du langage modernes et même "de pointe", même si elles ne sont pas encore bien prises en charge par les moteurs JavaScript.
127
82
128
-
Just don't forget to use transpiler (if using modern syntax or operators) and polyfills (to add functions that may be missing). And they'll ensure that the code works.
83
+
N'oubliez pas d'utiliser un transpiler (si vous utilisez une syntaxe ou des opérateurs modernes) et des polyfills (pour ajouter des fonctions qui peuvent manquer). Et ils veilleront à ce que le code fonctionne.
129
84
130
-
For example, later when you're familiar with JavaScript, you can setup a code build system based on [webpack](http://webpack.github.io/) with [babel-loader](https://github.com/babel/babel-loader) plugin.
85
+
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.github.io/) avec le plugin [babel-loader](https://github.com/babel/babel-loader).
131
86
132
-
Good resources that show the current state of support for various features:
133
-
- <https://kangax.github.io/compat-table/es6/> - for pure JavaScript.
134
-
- <https://caniuse.com/> - for browser-related functions.
87
+
De bonnes ressources qui montrent l'état actuel de la prise en charge de diverses fonctionnalités :
88
+
- <https://kangax.github.io/compat-table/es6/> - pour du pur JavaScript.
89
+
- <https://caniuse.com/> - pour les fonctions liées au navigateur.
135
90
136
-
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.
137
-
>>>>>>> 13da056653754765b50aa5a9f706f84a4a0d6293
91
+
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