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
+2-49Lines changed: 2 additions & 49 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -36,15 +36,9 @@ Les termes ci-dessus sont bons à retenir, car ils sont utilisés dans les artic
36
36
37
37
Les moteurs sont compliqués. Mais le fonctionnement de base est facile à comprendre.
38
38
39
-
<<<<<<< HEAD
40
39
1. Le moteur (intégré si c’est un navigateur) lit ("analyse") le script.
41
40
2. Ensuite, il convertit ("compile") le script en langage machine.
42
41
3. Enfin le code machine s'exécute, très rapidement.
43
-
=======
44
-
1. The engine (embedded if it's a browser) reads ("parses") the script.
45
-
2. Then it converts ("compiles") the script to machine code.
46
-
3. And then the machine code runs, pretty fast.
47
-
>>>>>>> bf7d8bb1af3b416d393af1c15b03cb1352da1f9c
48
42
49
43
Le moteur applique des optimisations à chaque étape du processus. Il surveille même le script compilé en cours d'exécution, analyse les données qui le traversent et applique des optimisations au code machine en fonction de ces informations.
50
44
```
@@ -53,11 +47,7 @@ Le moteur applique des optimisations à chaque étape du processus. Il surveille
53
47
54
48
Le JavaScript moderne est un langage de programmation "sûr". Il ne fournit pas d'accès de bas niveau à la mémoire ou au processeur, parce qu'il a été initialement conçu pour les navigateurs qui n'en ont pas besoin.
55
49
56
-
<<<<<<< HEAD
57
50
Les fonctionnalités dépendent grandement de l'environnement qui exécute JavaScript. Par exemple, [Node.js](https://fr.wikipedia.org/wiki/Node.js) prend en charge les fonctions qui permettent à JavaScript de lire / écrire des fichiers arbitrairement, d'exécuter des requêtes réseau, etc.
58
-
=======
59
-
Modern JavaScript is a "safe" programming language. It does not provide low-level access to memory or the CPU, because it was initially created for browsers which do not require it.
60
-
>>>>>>> bf7d8bb1af3b416d393af1c15b03cb1352da1f9c
61
51
62
52
JavaScript intégré au navigateur peut faire tout ce qui concerne la manipulation des pages Web, l'interaction avec l'utilisateur et le serveur Web.
63
53
@@ -73,19 +63,14 @@ Par exemple, JavaScript dans le navigateur est capable de :
73
63
74
64
Les capacités de JavaScript dans le navigateur sont limitées pour la sécurité de l'utilisateur. L'objectif est d'empêcher une page Web malveillante d'accéder à des informations privées ou de nuire aux données de l'utilisateur.
75
65
76
-
<<<<<<< HEAD
77
66
Les exemples de telles restrictions sont:
78
-
=======
79
-
JavaScript's abilities in the browser are limited to protect the user's safety. The aim is to prevent an evil webpage from accessing private information or harming the user's data.
80
-
>>>>>>> bf7d8bb1af3b416d393af1c15b03cb1352da1f9c
81
67
82
68
- JavaScript sur une page Web ne peut pas lire/écrire des fichiers arbitrairement sur le disque dur, les copier ou exécuter des programmes. Il n'a pas d'accès direct aux fonctions du système d'exploitation.
83
69
84
70
Les navigateurs modernes lui permettent de fonctionner avec des fichiers, mais l'accès est limité et n'est fourni que si l'utilisateur effectue certaines actions, comme «déposer» un fichier dans une fenêtre de navigateur ou le sélectionner via une balise `<input>`.
85
71
86
72
Il existe des moyens d’interagir avec une webcam/microphone et d’autres appareils, mais ils nécessitent une autorisation explicite de l’utilisateur. Ainsi, une page compatible avec JavaScript ne permet pas d'activer une caméra Web, d'observer l'environnement et d'envoyer les informations à la [NSA](https://fr.wikipedia.org/wiki/National_Security_Agency).
87
73
88
-
<<<<<<< HEAD
89
74
- Différents onglets / fenêtres ne se connaissent généralement pas. Parfois, ils se croisent, par exemple lorsqu'une fenêtre utilise JavaScript pour ouvrir l'autre. Mais même dans ce cas, le JavaScript d'une page ne peut pas accéder à l'autre si elle provient de sites différents (provenant d'un autre domaine, protocole ou port).
90
75
91
76
C'est ce qu'on appelle la "politique de même origine" (“Same Origin Policy”). Pour contourner cette sécurité, _les deux pages_ doivent se mettre d'accord et contenir un code JavaScript spécial qui gère l'échange de données. Nous allons voir cela plus loin dans ce tutoriel.
@@ -97,19 +82,6 @@ JavaScript's abilities in the browser are limited to protect the user's safety.
97
82

98
83
99
84
De telles limites n'existent pas si JavaScript est utilisé en dehors du navigateur, par exemple sur un serveur. Les navigateurs modernes permettent également l’installation de plug-ins / extensions susceptibles d’obtenir des autorisations étendues.
100
-
=======
101
-
There are ways to interact with the camera/microphone and other devices, but they require a user's explicit permission. So a JavaScript-enabled page may not sneakily enable a web-camera, observe the surroundings and send the information to the [NSA](https://en.wikipedia.org/wiki/National_Security_Agency).
102
-
- Different tabs/windows generally do not know about each other. Sometimes they do, for example when one window uses JavaScript to open the other one. But even in this case, JavaScript from one page may not access the other page if they come from different sites (from a different domain, protocol or port).
103
-
104
-
This is called the "Same Origin Policy". To work around that, *both pages* must agree for data exchange and must contain special JavaScript code that handles it. We'll cover that in the tutorial.
105
-
106
-
This limitation is, again, for the user's safety. A page from `http://anysite.com` which a user has opened must not be able to access another browser tab with the URL `http://gmail.com`, for example, and steal information from there.
107
-
- JavaScript can easily communicate over the net to the server where the current page came from. But its ability to receive data from other sites/domains is crippled. Though possible, it requires explicit agreement (expressed in HTTP headers) from the remote side. Once again, that's a safety limitation.
108
-
109
-

110
-
111
-
Such limitations do not exist if JavaScript is used outside of the browser, for example on a server. Modern browsers also allow plugins/extensions which may ask for extended permissions.
112
-
>>>>>>> bf7d8bb1af3b416d393af1c15b03cb1352da1f9c
113
85
114
86
## Qu'est-ce qui rend JavaScript unique ?
115
87
@@ -125,47 +97,28 @@ JavaScript est la seule technologie de navigateur qui combine ces trois élémen
125
97
126
98
C’est ce qui rend JavaScript unique. C’est pourquoi c’est l’outil le plus répandu pour créer des interfaces de navigateur.
127
99
128
-
<<<<<<< HEAD
129
100
Cela dit, JavaScript permet également de créer des serveurs, des applications mobiles, etc.
130
-
=======
131
-
That said, JavaScript can be used to create servers, mobile applications, etc.
132
-
>>>>>>> bf7d8bb1af3b416d393af1c15b03cb1352da1f9c
133
101
134
102
## Les langages "par dessus" JavaScript
135
103
136
104
La syntaxe de JavaScript ne convient pas aux besoins de tous. Différentes personnes veulent des fonctionnalités différentes.
137
105
138
106
Il faut s’y attendre, parce que les projets et les exigences sont différents pour tous.
139
107
140
-
<<<<<<< HEAD
141
-
Donc, récemment, une pléthore de nouveaux langages sont apparus, qui sont _transposés_ (convertis) en JavaScript avant leur exécution dans le navigateur.
142
-
=======
143
-
So, recently a plethora of new languages appeared, which are *transpiled* (converted) to JavaScript before they run in the browser.
144
-
>>>>>>> bf7d8bb1af3b416d393af1c15b03cb1352da1f9c
108
+
Donc, récemment, une pléthore de nouveaux langages sont apparus, qui sont _transpilés_ (convertis) en JavaScript avant leur exécution dans le navigateur.
145
109
146
110
Les outils modernes rendent la [transpilation](https://fr.wiktionary.org/wiki/transpilation) très rapide et transparente, permettant aux développeurs de coder dans une autre langue et de la convertir automatiquement "sous le capot".
147
111
148
112
Les exemples de ce genre de langages :
149
113
150
-
<<<<<<< HEAD
151
114
-[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.
152
115
-[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.
153
116
-[Flow](http://flow.org/) ajoute également la saisie de données, mais de manière différente. Développé par Facebook.
154
117
-[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.
155
118
-[Brython](https://brython.info/) est un transpilateur Python vers JavaScript qui permet d'écrire des applications en Python pur sans JavaScript.
156
119
-[Kotlin](https://kotlinlang.org/docs/reference/js-overview.html) est un langage de programmation moderne, concis et sûr qui peut cibler le navigateur ou Node.
157
120
158
-
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.
159
-
=======
160
-
-[CoffeeScript](https://coffeescript.org/) is "syntactic sugar" for JavaScript. It introduces shorter syntax, allowing us to write clearer and more precise code. Usually, Ruby devs like it.
161
-
-[TypeScript](https://www.typescriptlang.org/) is concentrated on adding "strict data typing" to simplify the development and support of complex systems. It is developed by Microsoft.
162
-
-[Flow](https://flow.org/) also adds data typing, but in a different way. Developed by Facebook.
163
-
-[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.
164
-
-[Brython](https://brython.info/) is a Python transpiler to JavaScript that enables the writing of applications in pure Python without JavaScript.
165
-
-[Kotlin](https://kotlinlang.org/docs/reference/js-overview.html) is a modern, concise and safe programming language that can target the browser or Node.
166
-
167
-
There are more. Of course, even if we use one of these transpiled languages, we should also know JavaScript to really understand what we're doing.
168
-
>>>>>>> bf7d8bb1af3b416d393af1c15b03cb1352da1f9c
121
+
Il en existe évidemment bien plus, cela dit, même si nous utilisons un de ces langages transpilés, nous devrions également connaître le langage JavaScript, pour bien comprendre ce que nous faisons.
0 commit comments